汇编语言-子程序调用
ret与ref指令
ret
ret == pop IP
ret指令用栈中的数据,修改IP的内容,从而实现近转移;
功能介绍
retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移
CPU执行ret指令时,进行下面两步操作:
(1)(IP) = ((ss) * 16 + (sp))
(2)(sp) = (sp) + 2
相当于进行:
pop IP
retf
retf == pop IP + POP CS
功能介绍
CPU执行retf指令时,进行下面两步操作:
(1)(IP) = ((ss) * 16 + (sp))
(2)(sp) = (sp) + 2
(3)(CS) = ((ss) * 16 + (sp))
(4)(sp) = (sp) + 2
相当于进行:
pop IP
pop CS
call指令
call 标号
功能介绍
(把当前IP压栈后, 转到标号处执行指令)
a. (SP) = (SP) - 2
((SS) * 16 + SP) = (IP)
b. (IP) = (IP) + 16位位移
相当于:<