汇编语言教程-返回指令(RET)

2023-05-16

汇编语言教程-返回指令(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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编语言教程-返回指令(RET) 的相关文章

  • 串口发送接收字符串的C语言代码参考

    通过串口把字符串数据从单片机U1发送到单片机U2 xff0c 通过U2的LCD602显示出来 LCD602显示代码是用的一个比较不错的现成的显示代码 单片机串口传字符串 xff0c 主要是利用字符串的格式的特点 xff0c 在传输中结束串口
  • HTTP协议解析

    HTTP概述 HTTP 全称为 34 超文本传输协议 34 是一种应用非常广泛的应用层协议 我们平时打开一个网站 就是通过 HTTP 协议来传输数据的 HTTP工作过程 xff1a 当我们在浏览器中输入一个 34 网址 34 xff0c 此
  • 《算法导论》学习心得

    第四章 分治策略 xff08 1 xff09 Master Method中case 3中 正则条件 的含义 xff1a 保证f n 在每次递归后都比上一层小 xff08 非递增 xff09 否则显然T n gt f n xff08 2 xf
  • 《算法导论》 第11章部分答案

    注 xff1a 以下答案均为自己思考 xff0c 难免有误 xff0c 欢迎指正 11 3 1 xff1a 将长度为n的链表进行排序 xff0c 将关键值的散列值相同的元素排为相邻 而散列表有点类似于链接法解决冲突的散列表 11 3 2 x
  • 算法刷题心得:动态规划 scramble-string

    牛客网 gt 在线编程 gt letcode gt scramble string Given a string s1 we may represent it as a binary tree by partitioning it to t
  • POJ 1635 Subway tree systems

    题目 xff1a Some major cities have subway systems in the form of a tree i e between any pair of stations there is one and o
  • Openwrt添加定制一个软件包

    我深知前路风雨 xff0c 但我依然微笑前行 Openwrt的Makefile流程异于一般常用的Makefile xff0c 阅读起来难度太大 但是我么可以先通过如何使用 修改Makefile开始 xff0c 从Makefile的某个局部开
  • 无人机通信(WiFI/3G/4GLTE)

    无人机通信 xff08 WiFI 3G 4GLTE xff09 DJI 大疆创新的无人机可实时操控执行各项任务 Phantom3 还内置了全新的 Lightbridge 高清图传系统 xff0c 使飞机所拍摄的实时图像可远距离传输到移动设备
  • realsense D430 python采集深度图像,并保存为txt及pcd点云,用于open3D后处理

    D430点云是x y z 将realsense D430保存的点云文件 pcd 需要对数据进行处理 废话不多说 直接上代码 span class token comment coding utf 8 span span class toke
  • 隐藏符号 __dso_handle 问题

    这几天要给项目做移植 xff0c 重写了下Makfile 项目原是使用autoconf配置的 xff0c 但在新环境下对autoconf的支持不好 Makefile编写基本按autoconf生成的Makefile来的 xff0c 编译选项等
  • 类模板成员函数

    模板类的头文件 span class token macro property span class token directive hash span span class token directive keyword ifndef s
  • C++ 在.h文件中包含头文件和在.cpp文件中包含头文件的原则

    1 第一个原则 xff1a 如果可以不包含头文件 xff0c 那就不要包含了 xff0c 这时候前置声明可以解决问题 如果使用的仅仅是一个类的指针 xff0c 没有使用这个类的具体对象 xff08 非指针 xff09 xff0c 也没有访问
  • NRF24L01数据通信C程序

    NRF24l01 产品性能 xff1a 1 xff09 2 4GHZ全球开放ISM频段免许可使用 2 xff09 最高工作速率2Mbps GFSK高效调制 3 xff09 125个频道满足多点通讯和跳频通讯需求 4 xff09 1 9 3
  • gazebo仿真之xacro文件

    span class token operator lt span span class token operator span xml version span class token operator 61 span span clas
  • c++ 释放内存 野指针

    在释放内存之时 xff0c 不仅仅是将该块内存进行释放 xff0c 还要将指向该块内存的指针置为NULL 如果不置为NULL xff0c 下次继续使用该指针时会出现问题 具体看示例 在下面的示例中 xff0c 如果没有处理野指针的那句话 x
  • 二维码识别 -- 基于ros平台下的仿真

    生活中的二维码 二维码是用某种特定的几何图形按一定规律在平面 xff08 二维方向上 xff09 分布的黑白相间的图形记录数据符号信息的 xff1b 在代码编制上巧妙地利用构成计算机内部逻辑基础的 0 1 比特流的概念 xff0c 使用若干
  • ROS中控制机械臂抓取目标例程

    在上一个博文中介绍了一个简单的目标识别的例子 xff0c 在这篇博客中 xff0c 例如是别的结果 xff0c 完成机械臂的抓取控制 xff0c 主要进行程序的分析和学习 包含的头文件 xff1a include lt ros ros h
  • STM32_Debug 使用ST-Link进行调试出现Error:Flash Download Failed-"Cortex-M3" 解决方案

    在Debug窗口依次注意以下几个点 xff1a 1 选择与主控芯片相配套的芯片 2 选择ST Link Debugger 此处注意该页面最下面一行可不更改 xff08 亲测有效 xff09 3 接上图点击进入Setting xff0c 依次
  • 标准外设库(STD库)、HAL库、LL库三者区别

    转自 xff1a https blog csdn net zcshoucsdn article details 54613202 2018 1 19 HAL库详解见STM32之HAL库详解 及 手动移植 STM32 Embedded Sof

随机推荐

  • FOC矢量控制

    FOC xff08 Filed Oriented Control xff09 是采用数学方法实现三相马达的力矩与励磁的解耦控制 主要是对电机的控制电流进行矢量分解 xff0c 变成励磁电流 I d Id 之后我将详细介绍一下这个算法的数学原
  • Linux网络编程8——对TCP与UDP的简易封装

    引言 每次使用socket通信 xff0c 都会有很对相似的操作 本文 xff0c 会对TCP与UDP通信做一简单封装 xff0c 并生成动态库 代码 my socket h ifndef MY SOCKET H define MY SOC
  • 分分钟带你入门无刷电机控制_P-NUCLEO-IHM001套件评测使用

    终于有时间将前段时间把有关ST公司的分分钟带你入门无刷电机控制 P NUCLEO IHM001套件评测的资料系统的整理一下 刚一开始接触接触这个套件的时候感觉这是什么鬼 xff0c 可以实现正弦波矢量控制 xff1f 这么强 xff0c 慢
  • SiamFC代码配置复现

    写在前面 最近在研究SiamRPN xff0c 究其根本 xff0c CNN依托于AlexNet骨架 xff0c 所以花些功夫研究以下SiamFC代码 xff0c 将其阶段性复现 Tracking only 关于GPU显卡配置 cudn和c
  • PySOT

    写在前面 期待已久的PySOT终于放上了code xff0c 高兴ing xff0c 赶忙进行相应的配置加以复现 xff0c 不得不说 xff0c 作者真的很贴心 xff0c 把配置环境的指令封装成脚本 xff0c 直接按需配置即可 但是在
  • 【Linux】SocketCan c语言编程

    前言 为了能够对Socket CAN的深入理解 xff0c 我们需要了解Socket的机制 Socket的中文翻译为 插座 xff0c 在计算机世界里称为套接字 Socket最初是作为网络上不同主机之间进程的通信接口 xff0c 后来应用越
  • VMWare虚拟机网络配置及虚拟机远程rviz显示雷达数据

    虚拟机网络配置 1 工具 环境 本机 xff1a Windows 10 64位虚拟机 xff1a VMware Workstation xff0c Ubuntu 18 04 2 Windows配置 WLAN部分 网络和Internet配置
  • 2022数学建模国赛B题思路分析

    分享一下 xff0c 仅供参考借鉴 xff0c 切勿直接使用 xff01 致谢一下全糖奶茶屋 xff01 一 问题重述 1 1 问题背景 由于无人机集群在遂行编队飞行时 应尽可能的避免外界干扰 因此需要尽可能的保持电磁静默减少电磁波信号的发
  • 利用Visual Studio创建C语言dll

    利用VS2019创建dll方法 动态链接库的定义及意义如何在VS创建dll入口函数DLLMain如何创建导出函数动态调用导出函数 动态链接库的定义及意义 动态链接库 xff08 Dynamic Link Library 或者 Dynamic
  • Human-in-the-Loop Optimization of Exoskeleton Assistance Via Online Simulation of Metabolic Cost

    Human in the Loop Optimization of Exoskeleton Assistance Via Online Simulation of Metabolic Cost 文章来源https ieeexplore ie
  • Dynamical Movement Primitives (DMP) 总结

    Dynamical Movement Primitives DMP 总结 概述 DMP通过将动态系统建立为 弹簧阻尼系统 43 非线性控制项的方式 f f f xff0c 实现了对示教数据的建模 具体贡献如下 xff1a 提供了一种简单的非
  • Probabilistic Movement Primitives (ProMP) 总结

    概述 文章通过在DMP的基础上增加随机项 xff0c 并通过EM算法求解得到符合示教数据的参数 一 模型介绍 1 系统方程 假设示教数据为 61 q t
  • 一些有用的数学定理

    法托引理 xff08 Fatou Theorem xff09 设 f n f n f n 是非负可测函数 xff0c 那么
  • 爬取需要登录的网站

    爬虫在采集网站的过程中 xff0c 部分数据价值较高的网站 xff0c 会限制访客的访问行为 这种时候建议通过登录的方式 xff0c 获取目标网站的cookie xff0c 然后再使用cookie配合代理IP进行数据采集分析 1 使用表单登
  • Makefile和Cmake的联系与区别

    CMake是一种跨平台编译工具 xff0c 比make更为高级 xff0c 使用起来要方便得多 CMake主要是编写CMakeLists txt文件 xff0c 然后用cmake命令将CMakeLists txt文件转化为make所需要的m
  • STM32内部寄存器、储存器、C对寄存器的封装

    STM32内部寄存器 储存器 C对寄存器的封装 STM32的地址空间可以分为8个 xff0c 分别是Block0 Block7 xff0c 其中Block2是应用于外设的存储器 xff0c 也是主要学习的内容 存储器映射 存储器的地址由厂商
  • C++ STL中各种数据结构操作的时间复杂度比较

    C 43 43 STL中各种数据结构操作的时间复杂度比较 访问push back push front insert pop back pop front erace find listO n O 1 O 1 O 1 O 1 O 1 O 1
  • pom.xml 标签详解

    lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xmlns xsi 61 34 http www w3 org 2001 XMLSchema instance 34 xsi
  • 解决“打开ArcGIS Server Manager”网页无反应为空白的情况

    问题 xff1a 装上arcgis serve 10后 xff0c 打开arcgis server manager页面返回空白 xff0c 用firefox显示 未找到元素 郁闷 xff0c 后来想尽各种办法 终于可以了 解决办法 xff1
  • 汇编语言教程-返回指令(RET)

    汇编语言教程 返回指令 RET 当子程序执行完时 xff0c 需要返回到调用它的程序之中 为实现此功能 xff0c 指令系统提供了一条专用的返回指令 其格式如下 xff1a RET RETN RETF Imm 子程序的返回在功能上是子程序调