首页 > 技术文章 > 汇编笔记 CALL(1)

killbit 2015-09-30 20:10 原文

assume cs:code

code segment

start:        mov ax,0 ;将AX通用寄存器设0
            call s 
            inc ax
s:            pop ax ;将数据从桟中取出
                
code ends
end start

执行完以上指令,AX= ?

 

 

执行CALL S(标号)的时候,进行如下操作:

 

1:SP = SP-2

(SS) * 16 + (SP))=(IP)

2:(IP) = (IP) + 16位位移。

当CPU执行CALL S(标号的时候),相当于进行:

 

PUSH IP

JMP NEAR PTR 标号

 

推荐阅读