汇编语言教程-返回指令(RET)
来源:互联网 发布:淘宝店铺导航怎么全屏 编辑:程序博客网 时间:2024/05/16 04:47
汇编语言教程-返回指令(RET)
当子程序执行完时,需要返回到调用它的程序之中。为实现此功能,指令系统提供了一条专用的返回指令。其格式如下:
RET/RETN/RETF [Imm]
子程序的返回在功能上是子程序调用的逆操作。为了与子程序的远、近调用相对应,子程序的返回也分:远返回和近返回。返回指令在堆栈操作方面是调用指令的逆过程(如图7.3所示)。其具体规定如下:
、在近类型的子程序中,返回指令RET是近返回,其功能是把栈顶之值弹出到指令指针寄存器IP中,SP会被加2(如图7.3所示);
、在远类型的子程序中,返回指令RET是远返回,其功能是:先弹出栈顶之值到IP中,再弹出栈顶之值到CS之中,SP总共会被加4(如图7.4所示)。
图7.3近返回指令的出栈操作示意图
图7.4远返回指令的出栈操作示意图
如果返回指令后面带有立即数(其值通常为偶数),则表示在得到返回地址之后,SP还要增加的偏移量,它不是类似于高级语言中子程序的返回值(如图7.5所示)。
图7.5带立即数的返回指令的出栈操作示意图
在MASM 5.0及其以后版本中,可用指令RETN或RETF来显式地告诉汇编程序是本子程序的返回是近返回,还是远返回。
例如:
RET;可能是近返回,也可能是远返回
RETN;近返回指令
RETF;远返回指令
RET6;子程序返回后,(SP)←(SP) + 6
- 汇编语言教程-返回指令(RET)
- 汇编语言--call和ret指令
- 8086汇编语言 ret指令实例
- 汇编语言笔记10-CALL和RET指令
- <学习笔记>王爽汇编语言__CALL和RET指令
- 汇编语言09——Call和Ret指令
- 【汇编语言/底层开发】10、CALL和RET指令
- 51 单片机汇编语言:利用 RET 指令实现多路分支
- 汇编语言 call和ret指令 的具体执行
- 汇编语言学习第十章-CALL和RET指令
- 关于汇编语言中RET指令无法回到正确位置
- 王爽 《汇编语言》 读书笔记 十 CALL和RET指令
- RET指令
- RET指令
- ret指令
- RET指令
- 读王爽老师汇编语言笔记---转移指令的原理和call,ret指令
- 王爽《汇编语言》(第二版) 学习笔记 (第十章 CALL和RET指令 )
- java String与unicode
- HR表查询雇员工作几年几月
- java进制转换
- Java基础类库简介
- JSP自定义标签
- 汇编语言教程-返回指令(RET)
- 点点滴滴(Oracle)
- 《ASP.NET MVC案例教程》索引贴
- 进程与线程通俗易懂的解释
- 奇偶数、课程成绩 Decode、when case
- 汇编中Enter和Leave指令
- 告诉你宇宙的真相:现代观点
- 下一代C&C++测试框架TestNG++入门指导
- 野外生存技巧