Emu8086错误还是坏代码?

时间:2017-03-09 02:07:00

标签: assembly emu8086

call _main
jmp $
_main:
push bp
mov bp, sp
sub sp, 0
mov ax, 20
mov [_t+0], al
mov ax, 30
mov [_t+1], al
mov ax, 40
mov [_t+2], al
mov ax, 90
mov [_t+3], al
xor ah, ah
; MOVE DATA TO REGISTER
xor ax, ax
mov al, [_t+2]
add sp, 0
pop bp                
ret         

data:
_t:
db 5, 5,5, 5

上面的代码应该是有效的,应该返回十进制40吗? Emu8086允许我分配“_t + 2”,但不允许我返回值。它在返回结果中给出了小数52。 这不是我第一次遇到像这样的Emu8086问题。我一直在编写一个编译器,我测试的很多东西都没能在模拟器中正确运行。

如果这是一个bug,任何人都可以提出更好的模拟器。我只想澄清它是否是一个错误而且我没有犯过一个愚蠢的错误

由于

0 个答案:

没有答案