call指令的一个细节
October 7, 2013
masm
执行下面这个程序之后,ax的值是多少?
assume cs:code
code segment
start:
mov ax, 0
call s
inc ax
s:
pop ax
mov ax, 4c00h
int 21h
code ends
end start
答案是0006h
这道题目要做对首先要明白CPU执行指令的机制,IP值的增加实在指令送入指令缓冲器中进行的,也就是指令执行之前。所以,执行到call s的时候,压入栈的ax值是6h=_=