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