汇编ret ,retf ,iret ,int指令详解

2023-10-31

**
ret指令
**
执行过程
ret指令用栈中的数据,修改IP的值,从而实现近转移。
CPU执行ret指令时,进行下面两步操作:
(IP)=((SS)*16+(SP))
(SP)=(SP)+2;
另一种用法 ret n (n为整数)
等效于
(IP)=((SS)*16+(SP))
(SP)=(SP)+2;
(SP)=(SP)+n;
例如ret 4
pop ip
add sp,4
**
retf指令
**
retf用栈中数据同时改CS,IP,远转移
远返回指令。当它执行时,处理器先从栈中弹出一个字到IP,再弹出一个字到CS。

最后,call、ret、retf 这三条指令执行后不会对标志位产生影响。

retf -> pop ip
pop cs

iret (interrupt return )  中断返回指令

1.恢复 IP(instruction pointer):(IP)←((SP)+1:(SP)),(SP)←(SP)+2
2.恢复 CS(code segment):(CS)←((SP)+1:(SP)),(SP)←(SP)+2
3.恢复中断前的 PSW(program status word),即恢复中断前的 标志寄存器的状态。
(FR)←((SP)+1:(SP)),(SP)←(SP)+2
4.恢复ESP(返回权限发生变化)
5.恢复SS(返回权限发生变化)
 IRET指令影响所有标志位。

**
int 指令**

  1. 中断类型号
  2. 标志寄存器入栈,IF=0.TF=1
  3. CS,IP入栈
  4. IP=(n*4),CS=(n*4+2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编ret ,retf ,iret ,int指令详解 的相关文章

  • 分析常见数据结构在内存中的存储形式

    本文会在x64dbg中分析vector list map的内存存储特点 目录 分析vector在内存中的存储形式 x32dbg分析vector数组 总结一下vector的内存布局 分析 list 在内存中的存储形式 x32dbg分析 lis
  • APK反编译破解方法与加密措施

    所谓APK指的是Android操作系统的应用程序安装文件 所谓Crack 简单地理解为 破解 我具体指的是反编译APK文件进行汇编级的代码分析 并修改或插入自己的代码 重新签名打包为APK文件 以达到改变程序原有行为的目的 由以上的说明可知
  • C关键字volatile

    其实我想看的 想做笔记的就是就是那个汇编例子 看来汇编例子有助于了解啊 以前听人说过 高手都能将每一句C语言对应一句汇编语言 C语言关键字volatile 1 C语言关键字volatile C语言关键字volatile 注意它是用来修饰变量
  • Intel 80X86寄存器分类介绍

    开始读Linux内核相关书籍时 在书店里碰到一个计算机专业科班出身的朋友 向他请教时 他认为学习Linux内核不需要汇编和计算机体系结构等相关的知识 可是结合到现在的学习经历 我却越来越觉得为了搞清楚Linux内核相关设计和运行原理 自己那
  • 汇编基础(2) -- ARM64

    简介 ARM架构中 ARM64 也称为AArch64 是一种64位处理器架构 它是ARMv8指令集的一部分 与之前的32位ARM架构相比 ARM64提供了更大的寄存器容量 更广阔的地址空间和更高的计算能力 64位版本的指令集和32位版本的指
  • 函数调用约定(整理稿)

    函数调用约定 整理稿 Function calling convention 在C语言中 假设我们有这样的一个函数 int function int a int b 调用时只要用result function 1 2 这样的方式就可以使用这
  • 上帝模式下的shellcode

    github https github com Wker666 讲解视频 https www bilibili com video BV1oY411E7hX p 1 share medium iphone share plat ios sh
  • 汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中)

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net m0 37564426 article details 85563170
  • 上例中便是调用GetSystemMenu函数的

    有如下问题请教各位 1 为什么程序在调用window api或者dll中的输出函数时用的形式是 00401375 FF1514324000 Call dword ptr 004
  • CSAPP-BinaryBomb实验

    目录 一 实验目的与要求 二 实验原理与内容 三 实验过程与结果 1 程序编码 汇编 2 拆解过程 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6 Secret phase 一 实验目的与要求
  • 逻辑左移、逻辑右移、算术左移、算术右移、循环左移、循环右移的学习

    逻辑左移时 最高位丢失 最低位补0 逻辑右移时 最高位补0 最低位丢失 算术左移时 依次左移一位 尾部补0 最高的符号位保持不变 算术右移时 依次右移一位 尾部丢失 符号位右移后 原位置上复制一个符号位 循环左移时 将最高位重新放置最低位
  • 我的程序员之路进行中

    计划看的书 1 Windows程序设计 第5版珍藏版 1104页 2 Windows程序设计 第2版 王艳平 扫描版 490页 3 Windows核心编程 第5版 769页 4 竹林蹊径 深入浅出windows驱动开发 506页 5 Win
  • ARM 汇编基础知识

    1 为什么学习汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编 因为 Cortex A 芯片一 上电 SP 指针还没初始化 C 环境还没准备好 所以肯定不能运行 C 代码 必须先用汇编语言设置好 C 环境 比如
  • 函数的引用返回

    引用是给变量取一个别名 所以引用传递会直接进行变量本身的传递 它的最大好处是可以把别处对变量的改变保留下来 第二好处是它提高了性能 如果函数的返回值是一个引用 那么 如上文所说 它会节约一组构造 赋值和析构过程 但是 函数返回引用往往会带来
  • IDM 6.4.1逆向分析笔记

    环境准备 安装过程不做说明 1 x64dbg 官网地址 https x64dbg com 2 火绒剑 官网地址 https www huorong cn SPY 下载地址 https github com westoncampbell Sp
  • dosbox+masm汇编环境的安装和使用 + dosbox进行debug调试教程

    1 dosbox masm汇编环境的安装和使用 https blog csdn net yuzuruhanyu article details 80287419 2 dosbox进行debug调试教程 https blog csdn net
  • 汇编语言11之中断和int指令以及端口

    中断第处理外部突发事件的一个重要技术 硬件中断 外部中断 一般是外设发出的中断 内部中断 硬件出错或运算出错引起的中断 不可被屏蔽 软件中断 中断处理程序 CPU必须建立中断信息和中断处理程序之间的联系 中断信息中包含 1byte 中断类型
  • 常见汇编指令整理

    本文会整理在逆向中常见的指令汇总 目录 汇编符号 汇编指令的组成 mov movzx lea xchg 加法指令 减法指令 带进位加法 带进位减法 自增自减 乘法运算 除法运算 and or xor not shl shr 逻辑指令 字符串
  • 9.用python写网络爬虫,完结

    前言 这是python网络爬虫的最后一篇给大家做个总结 且看且珍惜把 截止到目前 前几章本书介绍的爬虫技术都应用于一个定制网站 这样可以帮助我们更加专注于学习特定技巧 而在本章中 我们将分析几个真实网站 来看看这些技巧是如何应用的 首先我们
  • C语言深入学习--checklist4:宏、枚举、switch

    宏 1 宏的本质是什么 函数 语句 类型定义 或者其它 预编译器的文本替换 1 你知道语言设计者为什么设计宏吗 这些原因目前是否成立 在 C程序中 可以用宏代码提高执行效率 宏代码本身不是函数 但使用起来象函数 预处理器用复制宏代码的方式代

随机推荐

  • 【Graph Neural Network】 GraphSAGE 基本原理与tensorflow2.0实现

    文章目录 GraphSAGE 前向传播算法 采样算法 聚合 aggragator 操作 参数学习 基于tensorflow2 0实现Graph SAGE GCN是一种利用图结构和邻居顶点属性信息学习顶点Embedding表示的方法 GCN是
  • 如何有效预防脱库

    本篇不从DBA 网络架构层面来讲述数据安全 这部分有很专业的架构和云上产品来解决 本篇重点从开发人员角度讲述如何避免数据安全的漏洞 相信大部分人都看到过这样的新闻 某某论坛泄漏了用户密码 某某物流公司泄漏了用户的手机号等等 我一直坚信大部分
  • 用Unity3D和VuforiaSDK简单做AR应用(入门)

    最近刚开始接触AR技术 结合u3d 算是对增强现实应用入个门 网上的例子不胜枚举 但有些浅尝辄止 根据自己几天来的摸索 毕竟新的技术源自国外 翻起晦涩的外文 一步一个脚印终于爬了出来 先上个史记效果图先 我取名之 鹿君下山 接下来说说步骤
  • Linux分区记录

    命令 cat proc mtd dev size erasesize name mtd0 00007000 00010000 vendor mtd1 00030000 00010000 IDBlock mtd2 00600000 00010
  • 3.5设计模式——————接口隔离原则——面向对象设计原则

    接口隔离原则的定义 接口隔离原则 Interface Segregation Principle ISP 要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口 让接口中只包含客户感兴趣的方法 2002 年罗伯特 C 马丁给 接口隔离原则
  • php新闻管理系统(简单)学习教程

    最近因为工作原因需要使用php开发网页 所以开始学习php 在学习的过程中也遇到了很多困难 经过不断的查询百度各种学习资料 逐步的客服了这些困难和疑惑 现在我将学习过程中编写的代码分享给有需要的朋友 仅供参考 此系统比较简单 共有20个ph
  • 某宝登录滑块拖动没反应解决,亲测有效

    这两天在抓取某宝数据的时候发现使用selenium登录时会有滑块 然后尝试使用xpath定位到滑块位置然后使用Actionchains拖动 但是发现滑块拖动没有反应 但是在抓取过程中的滑块拖动时没有问题的 如图所示 随后对代码进行调试 终于
  • 微信小程序开店怎么做?

    在日活量如此之高的微信里 很多商家都希望能再微信开一个小程序商店 来提高自己的一个卖货收益 那么微信小程序开店怎么做呢 下面跟大家分享一下微信小程序怎么开店 一 开通小程序账号 首先我们需要开通一个小程序账号 小程序账号的主体类型要企业或者
  • 学习一年Java的程序员的C++学习记录(指针引用绕晕记)

    文章目录 一 C 入门 二 变量和数据类型 三 运算符 四 流程控制 五 复合数据类型 六 函数 七 函数高阶 八 面向对象 一 C 入门 标准输出流中 cout 是一个ostream对象 lt lt 和 gt gt 是C 中经过重载的运算
  • 从谷歌宕机事件认识互联网工作原理

    摘要 谷歌服务器经历了短暂的宕机事件 持续大概27分钟 对部分地区的互联网用户造成了影响 此次事件的原因深究起来需要进入互联网络那深邃的 黑暗的角落 译者注 本文中提到CloudFlare是一家总部位于美国旧金山的内容分发网络 CDN 服务
  • 必备歌曲--超经典

    一些超经典的歌曲 看看你听过多少 1 陈慧琳 记事本 爱得痛了 痛的哭了 记载着我们过去的点点滴滴 让我们一起回忆 2 王力宏 唯一 悠扬 流畅 很有韵味的感觉 大声对你深爱的人说你是我的唯一王力宏新专辑首支主打歌 唯一 打动不少歌迷 觉得
  • 华为OD机试 - 跳房子I(Java)

    题目描述 跳房子 也叫跳飞机 是一种世界性的儿童游戏 游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格 跳房子的过程中 可以向前跳 也可以向后跳 假设房子的总格数是count 小红每回合可能连续跳的步教都放在数组steps中 请问
  • shell 脚本中wait命令以及多进程库wait()原语的使用

    一 脚本源码 compute it 1 gt compute it 1 out compute it 2 gt compute it 2 out wait cat compute it 1 out cat compute it 2 out
  • 解决Spyder无法自动补全某些代码的问题

    今天在Spyder发现按tab代码无法自动补全 网上的方法全部试过了 如在ipython里面勾选greedy completion 和autocall选full 删除enum34 我根本就没有这个包 安装rope 安装正确版本的jedi和p
  • JAVA this关键字的使用(JacKing)

    1 对当前对象的引用 public class Leaf int i 0 Leaf increment i return this void print System out println i i public static void m
  • Unity3d trial version 水印

    使用个人免费版发布安卓手机版包 屏幕右下角显示 trial version 水印 解决办法 1 免费版Unity Hub 使用国外网络刷新证书 2 使用付费版Unity Hub
  • 美团笔试-回转寿司

    小美请小团吃回转寿司 转盘上有N盘寿司围成一圈 第1盘与第2盘相邻 第2盘与第3盘相邻 第N 1盘与第N盘相邻 第N盘与第1盘相邻 小团认为第i盘寿司的美味值为A i 可能是负值 如果小团讨厌这盘寿司 现在 小团要在转盘上选出连续的若干盘寿
  • Qt网络编程之实例一GET方式

    看了两天的Qt网络编程 其实主要就是看了看QNetworkAccessManager QNetworkRequest和QNetworkReply这三个类的主要内容 在之前 Qt网络编程主要是使用QHttp等类 但是现在在帮助手册中这些类已经
  • 2022年2月6日--2月12日(ue智慧城市3,4周,本周10小时,合计1929小时,剩余8071小时)

    目前 ue视频教程进行到了智 慧 城 市 3 11 mysql 7 1 tf1 4 11 蓝图反射 1 9 moba 1 5 webapp 2 4 mmoarpg 00A 04 socket 2 57 Opengl 5 9 GLSL 2 1
  • 汇编ret ,retf ,iret ,int指令详解

    ret指令 执行过程 ret指令用栈中的数据 修改IP的值 从而实现近转移 CPU执行ret指令时 进行下面两步操作 IP SS 16 SP SP SP 2 另一种用法 ret n n为整数 等效于 IP SS 16 SP SP SP 2