📜  8086程序使用字符串指令传输一个4字节的块

📅  最后修改于: 2021-06-28 15:28:49             🧑  作者: Mango

问题–编写一个程序来传输一个4字节的块,起始地址为0500,并使用字符串指令在地址0600处传输该块。

例子 –

假设–假设存储器地址0500、0501、0502、0503中有4个块。

算法 –

  1. 在SI中分配值500在DI中分配值600
  2. 将值0000 H分配给AX
  3. 在DS中移动AX的内容
  4. 在ES中移动AX的内容
  5. 将值0004 H分配给CX
  6. 清除方向标记
  7. 重复直到CX = 0,移动字符串块
  8. 暂停程序

程序 –

MEMORY ADDRESS MNEMONICS COMMENTS
0400 MOV SI, 500 SI <- 500
0403 MOV DI, 600 DI <- 600
0406 MOV AX, 0000 AX <- 0000
0409 MOV DS, AX DS <- AX
040B MOV ES, AX ES <- AX
040D MOV CX, 0004 CX <- 0004
0410 CLD CLEAR DIRECTIONAL FLAG
0411 REP REPEAT UNTIL CX=0
0412 MOVSB MOVE THE BLOCK
0413 HLT END OF THE PROGRAM

解释 –

  1. MOV SI,500将500分配给SI
  2. MOV DI,600将600分配给DI
  3. MOV AX,00将0000分配给AX寄存器
  4. MOV DS,AX将AX的内容移至DS段
  5. MOV ES,AX将AX的内容移至ES段
  6. MOV CX,0004将0000分配给CX寄存器
  7. CLD清除方向标记
  8. 重复REP直到CX = 0
  9. MOVSB移动字符串块
  10. HLT停止执行程序。