EMU8086为错误的寄存器增加了价值

时间:2018-11-25 12:52:00

标签: nasm emu8086

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

如果我仿真此代码,则会看到EMU8086设置了寄存器AX的AH(不是AL)部分。为什么?

1 个答案:

答案 0 :(得分:0)

EMU8086从开头(var1)开始处理,并将字节解释为指令,并随后将其解释为后续字节。因此,代码查找EMU8086就像

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

如您所见,此代码更改了AH,但没有更改AL。简而言之:EMU8086需要正确的DOS程序。