一个汇编寄存器问题
发布网友
发布时间:2022-05-05 15:18
我来回答
共1个回答
热心网友
时间:2022-06-27 16:24
0000:00106226E6D6CC2E3C3B-ABBA000026066688
movax,1
movds,ax
;前面两条指令执行后,ds=0001H,0001:0000等价于0000:0010H。所以,下面的指令读取的内存数据实际上是从0000:0010H开始的,而不是从0000:0000H开始,这是楼主不解的主要原因。
movax,[0000];AX=2662H
movbx,[0001];BX=0E626H
movax,bx;AX=0E626H
movax,[0000];AX=2662H
movbx,[0002];BX=0D6E6H
addax,bx;AX=0FD48H
addax,[0004];AX=2C14H(说明:0FD48H+2ECCH,正常应该等于12C14H,相加结果有溢出。所以,最后结果,AX=2C14H)
movax,0;AX=0
moval,[0002];AX=00E6H
movbx,0;BX=0
movbl,[000c];BX=0026H
addal,bl;AX=000CH(说明:0E6H+26H,正常应该等于10CH,相加结果有溢出。所以,最后结果,AX=000CH)