监测点10.3
mov ax,0 ;ax=0call far ptr s ;跳转到s,将cs压入栈,将ip压入栈,cs=1000,ip=3
inc ax
s:pop ax ;ax=3
add ax,ax ;ax=6
pop bx ;bx=1000
add ax,bx ;ax=1003
执行后ax为1003 好像不太对吧,入栈的ip应该是8才对 942867852 发表于 2020-8-12 15:58
好像不太对吧,入栈的ip应该是8才对
应该:call far ptr s ;跳转到s,将cs压入栈,将ip压入栈,cs=1000,ip=8
最后结果:ax=1010H mov ax,0 ;ax=0
call far ptr s ;跳转到s,将cs压入栈,将ip压入栈,cs=1000H,ip=0008H
inc ax
s:pop ax ;ax=0008H
add ax,ax ;ax=0010H
pop bx ;bx=1000H
add ax,bx ;ax=1010H
mov ax,0 ;ax=0
call far ptr s ;跳转到s,将cs压入栈,将ip压入栈,cs=1000H,ip=0008H
inc ax ;1010H +1最后等于 1011H才对 不是1010H
s:pop ax ;ax=0008H
add ax,ax ;ax=0010H
pop bx ;bx=1000H
add ax,bx ;ax=1010H
老是把十六进制当成十进制来算 cfwhl2020 发表于 2021-1-21 08:15
应该:call far ptr s ;跳转到s,将cs压入栈,将ip压入栈,cs=1000,ip=8
最后结果:ax=1010H
inc ax不执行了吗
页:
[1]