EMU8086将值添加到错误的寄存器


var1 db 1h, 2h
var2 db 2h
MOV AL, [var1 + 1]
MOV [var2], AL

如果我模拟这个代码,我会看到EMU8086设置寄存器AX的AH(而不是AL(部分。为什么?

EMU8086从开始(var1(开始处理,并相应地将字节解释为指令和后续字节。因此,该代码查找类似的EMU8086

ADD [BP+SI], AX
ADD AH, [BX + SI] + 00001
MOV [00002], AL

正如您所看到的,此代码更改了AH,但没有更改AL。简而言之:EMU8086需要一个合适的DOS程序。

完成此操作后,必须首先将var1地址加载到si中

lea si,var1
mov al,[si+1]
mov [si+2],al

相关内容

  • 没有找到相关文章

最新更新