跟着王爽老师学习汇编,执行以下指令时,发现自己手动算出来的和dosbox验证的不一致
dosbox用的是debug模式,确保了内存数据和指令都完全一致的情况下,逐步执行,发现写在0000:0000位置的内存数据在执行add命令的时候被修改了
以下是内存数据
0000:0000 70 80 f0 30 ef 60 30 e2 00 80 12 66 20 22 60 60
0000:0010 62 26 e6 d6 cc 2e 3c 3b ab ba 00 00 26 06 66 68
以下是指令
前置条件
mov ax, 0
mov ds, ax
正式执行
mov ax, [0000]
mov bx, [0001]
mov ax, bx
mov ax, [0000]
mov bx, [0002]
add ax, bx
add ax, [0004]
mov ax, 0
mov al, [0002]
mov bx, 0
mov bl, [000c]
add al, bl
以下是stackoverflow的回答
stackoverflow回答链接
- 回答截图,因为dosbox的debugger用了0000:0000的内容