汇编-10.0-CALL和RET指令

Posted xigongxiaosha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编-10.0-CALL和RET指令相关的知识,希望对你有一定的参考价值。

call和ret指令都是转移指令,他们都是修改IP,或同时修改CS和IP。它们常被共同用来实现子程序设计。

1.ret和retf

ret指令用栈中的数据,修改IP的内容,从而实现近转移;

retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移;

CPU执行ret指令时,进行下面两步操作:

(1).(IP)=((ss)*16+(sp))

(2).(sp)=(sp)+2

 

用汇编语法解释,相当于:

pop IP

CPU执行retf指令时,进行下面4步操作:

(1).(IP)=((ss)*16+(sp))

(2).(sp)=(sp)+2

(3).(CS)=((ss)*16+(sp))

(4).(sp)=(sp)+2

用汇编语法来解释,相当于:

pop IP

pop CS 

2.call指令

CPU执行call指令时,进行两步操作:

(1).将当前的IP或CS和IP压入栈中;

(2).转移

call指令不能实现短转移,除此之外,call指令实现转移的方法和jmp指令的原理相同。

 

以上是关于汇编-10.0-CALL和RET指令的主要内容,如果未能解决你的问题,请参考以下文章

[汇编]《汇编语言》第10章 CALL和RET指令

汇编10:CALL和RET指令

汇编语言——call 和 ret 指令

8086汇编之 CALL 和 RET指令

汇编入门学习笔记 —— call和ret

汇编_ret_retf_call指令使用说明