Intel 64/x86_64/IA-32/x86处理器 - 通用指令(5) - 控制转移指令
Control Transfer Instructions
控制转移指令支持无条件跳转jump,条件跳转conditional jump,循环loop,调用call与返回return操作,从而实现程序执行流控制。
指令 |
描述 |
JMP |
无条件跳转;分为近跳转(段内跳转)和远跳转(段间跳转) |
JE/JZ |
标志寄存器指示结果相等/为0,则跳转 |
JNE/JNZ |
标志寄存器指示结果不相等/不为0,则跳转 |
JA/JNBE |
(无符号数)大于/不小于等于,则跳转 |
JAE/JNB |
(无符号数)大于等于/不小于,则跳转 |
JB/JNAE |
(无符号数)小于/不大于等于,则跳转 |
JBE/JNA |
(无符号数)小于等于/不大于,则跳转 |
JG/JNLE |
(有符号数)大于/不小于等于,则跳转 |
JGE/JNL |
(有符号数)大于等于/不小于,则跳转 |
JL/JNGE |
(有符号数)小于/不大于等于,则跳转 |
JLE/JNG |
(有符号数)小于等于/不大于,则跳转 |
JC |
标志寄存器指示结果有进位/借位,则跳转 |
JNC |
标志寄存器指示结果没有进位/借位,则跳转 |
JO |
标志寄存器指示结果溢出,则跳转 |
JNO |
标志寄存器指示结果没有溢出,则跳转 |
JS |
标志寄存器指示结果为负数,则跳转 |
JNS |
标志寄存器指示结果为非负数(即为0或正数),则跳转 |
JPO/JNP |
标志寄存器指示结果奇偶校验为奇数,则跳转 |
JPE/JP |
标志寄存器指示结果奇偶校验为偶数,则跳转 |
JCXZ/JECXZ |
CX/ECX寄存器为0,则跳转 |
LOOP |
ECX寄存器不为0,则循环 |
LOOPZ/LOOPE |
ECX寄存器不为0且ZF=1,则跳转 |
LOOPNZ/LOOPNE |
ECX寄存器不为0且ZF=0,则跳转 |
CALL |
调用过程 |
RET |
过程返回指令 |
IRET |
中断返回指令 |
INT |
软中断指令 |
INTO |
如果OF=1,则产生溢出陷阱 |
BOUND |
如果第一个操作数不在第二个操作数指定的范围内,则产生边界越界#BR异常。 |
ENTER |
高级过程(调用)入口指令 |
LEAVE |
高级过程(返回)退出指令 |
Intel 64/x86_64/IA-32/x86处理器 - 通用指令(5) - 控制转移指令相关推荐
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(1) - 数据传输指令
General-Purpose Instructions 通用指令执行基本的数据搬移,算术/逻辑计算,程序流控制,字符串操作等.这些指令被频繁地用于运行在IA-32与Intel 64架构的系统软件与应 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(8) - 杂项指令 用户态扩展状态指令 随机数生成指令
Miscellaneous Instructions 杂项指令包括的功能有:载入有效地址,执行"误操作",以及侦测处理器标识信息等. 指令 描述 LEA 载入有效地址到目标寄存器 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(9/E) - 比特位操控指令(BMI1 BMI2)
Bit Manipulation Instructions (BMI1 & BMI2) 指令 描述 ANDN 格式: ANDN r32a, r32b, r/m32 第一源操作数(r32b)取反 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(2) - 二进制算术指令/十进制算术指令
Binary Arithmetic Instructions 二进制算术指令执行基本的二进制整型计算,操作数可以是字节,单字和双字整型数,位于存储器中,和/或通用寄存器中. 指令 描述 ADCX 带进 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(6) - 字符串指令/输入输出指令
String Instructions 字符串指令操作字节构成的串,用来在内存中将字符串搬来搬去.MOVS/CMPS/SCAS/LODS/STOS指令在执行完一次操作后,都会按照标志寄存器中的DF标志 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令
Logical Instructions 逻辑指令执行基本的"与.或.非.异或"操作,操作数可以是字节,单字和双子值. 指令 描述 AND 对操作数执行按位逻辑"与&qu ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(7) - 标志寄存器/标志控制指令 段寄存器指令
Flag Control (EFLAGS) Instructions 下列指令用于控制(即修改)标志寄存器EFLAGS中的标志位. 指令 描述 STC 设置CF标志为1 CLC 清除CF标志为0 CM ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(4) - 比特位设置指令/字节设置指令
Bit and Byte Instructions 比特指令测试并修改操作数的某些比特位:字节指令设置字节操作数的值,用来指示EFLAGS标志寄存器的状态. 指令 描述 BT 测试比特位(将要测试的比 ...
- Intel 64/x86_64/IA-32/x86处理器基本执行环境 (1) - 32位执行环境概述
Basic Execution Environment Overview IA-32处理器提供了一套完整的资源,在处理器上运行的程序/任务可以执行指令,存储代码,数据以及状态信息.这些资源(如下简要的 ...
最新文章
- excel函数去重_将数字去重,然后按从小到大的顺序连接起来!
- 在C#中使用Selenium WebDriver执行JavaScript
- Android游戏开发系统控件-CheckBox
- mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程、函数、视图、触发器、表...
- Python突击(一)
- Hbase预分区入门
- 动态链接库的设计(DLL)
- 日志追踪-类加载器-线程上下文类加载器
- TalkingData的使用,iOS数据统计
- 在echarts中使用百度地图扩展,实现在地图上叠加显示栅格热力图
- .net之微信企业号开发(二) 企业号人员身份认证与开发
- 如果一个女人喜欢你,又不跟你在一起,而且只跟你很暧昧,那代表什么
- 计算机网络实践之元气骑士公网异地联机(三) 完善转发机的转发规则
- 浅谈单片机低功耗处理
- uoni扫地机器人好用吗_由利Uoni扫地机器人V980 MAX好用吗?详细测评告诉你
- hackme2靶场刷题记录
- 2022年度总结:拒绝无效努力,实现破圈成长。
- 宁德时代、亿纬锂能储能“列阵”
- Linux如何给服务器增加白名单
- idea 公共方法抽取快捷键
热门文章
- 高等组合学笔记(八):第一类Stirling数, 整数分拆
- pycharm运行时出现错误解决方法(持续更新中)
- WORD开发工具的控件功能?
- 变频器说明书_图解变频器接线方法
- C语言实现1~100的和(三种循环)
- android添加快捷按钮,Android中创建快捷方式代码实例
- python os如何创建文件夹_Python怎样创建文件夹,怎样删除文件夹
- y空间兑换代码_loam代码解析3
- python代码块使用缩进来表示_Python代码需要缩进吗
- ROS中阶笔记(十):ROS机器人综合应用