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) - 控制转移指令相关推荐

  1. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(1) - 数据传输指令

    General-Purpose Instructions 通用指令执行基本的数据搬移,算术/逻辑计算,程序流控制,字符串操作等.这些指令被频繁地用于运行在IA-32与Intel 64架构的系统软件与应 ...

  2. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(8) - 杂项指令 用户态扩展状态指令 随机数生成指令

    Miscellaneous Instructions 杂项指令包括的功能有:载入有效地址,执行"误操作",以及侦测处理器标识信息等. 指令 描述 LEA 载入有效地址到目标寄存器 ...

  3. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(9/E) - 比特位操控指令(BMI1 BMI2)

    Bit Manipulation Instructions (BMI1 & BMI2) 指令 描述 ANDN 格式: ANDN r32a, r32b, r/m32 第一源操作数(r32b)取反 ...

  4. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(2) - 二进制算术指令/十进制算术指令

    Binary Arithmetic Instructions 二进制算术指令执行基本的二进制整型计算,操作数可以是字节,单字和双字整型数,位于存储器中,和/或通用寄存器中. 指令 描述 ADCX 带进 ...

  5. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(6) - 字符串指令/输入输出指令

    String Instructions 字符串指令操作字节构成的串,用来在内存中将字符串搬来搬去.MOVS/CMPS/SCAS/LODS/STOS指令在执行完一次操作后,都会按照标志寄存器中的DF标志 ...

  6. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令

    Logical Instructions 逻辑指令执行基本的"与.或.非.异或"操作,操作数可以是字节,单字和双子值. 指令 描述 AND 对操作数执行按位逻辑"与&qu ...

  7. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(7) - 标志寄存器/标志控制指令 段寄存器指令

    Flag Control (EFLAGS) Instructions 下列指令用于控制(即修改)标志寄存器EFLAGS中的标志位. 指令 描述 STC 设置CF标志为1 CLC 清除CF标志为0 CM ...

  8. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(4) - 比特位设置指令/字节设置指令

    Bit and Byte Instructions 比特指令测试并修改操作数的某些比特位:字节指令设置字节操作数的值,用来指示EFLAGS标志寄存器的状态. 指令 描述 BT 测试比特位(将要测试的比 ...

  9. Intel 64/x86_64/IA-32/x86处理器基本执行环境 (1) - 32位执行环境概述

    Basic Execution Environment Overview IA-32处理器提供了一套完整的资源,在处理器上运行的程序/任务可以执行指令,存储代码,数据以及状态信息.这些资源(如下简要的 ...

最新文章

  1. excel函数去重_将数字去重,然后按从小到大的顺序连接起来!
  2. 在C#中使用Selenium WebDriver执行JavaScript
  3. Android游戏开发系统控件-CheckBox
  4. mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程、函数、视图、触发器、表...
  5. Python突击(一)
  6. Hbase预分区入门
  7. 动态链接库的设计(DLL)
  8. 日志追踪-类加载器-线程上下文类加载器
  9. TalkingData的使用,iOS数据统计
  10. 在echarts中使用百度地图扩展,实现在地图上叠加显示栅格热力图
  11. .net之微信企业号开发(二) 企业号人员身份认证与开发
  12. 如果一个女人喜欢你,又不跟你在一起,而且只跟你很暧昧,那代表什么
  13. 计算机网络实践之元气骑士公网异地联机(三) 完善转发机的转发规则
  14. 浅谈单片机低功耗处理
  15. uoni扫地机器人好用吗_由利Uoni扫地机器人V980 MAX好用吗?详细测评告诉你
  16. hackme2靶场刷题记录
  17. 2022年度总结:拒绝无效努力,实现破圈成长。
  18. 宁德时代、亿纬锂能储能“列阵”
  19. Linux如何给服务器增加白名单
  20. idea 公共方法抽取快捷键

热门文章

  1. 高等组合学笔记(八):第一类Stirling数, 整数分拆
  2. pycharm运行时出现错误解决方法(持续更新中)
  3. WORD开发工具的控件功能?
  4. 变频器说明书_图解变频器接线方法
  5. C语言实现1~100的和(三种循环)
  6. android添加快捷按钮,Android中创建快捷方式代码实例
  7. python os如何创建文件夹_Python怎样创建文件夹,怎样删除文件夹
  8. y空间兑换代码_loam代码解析3
  9. python代码块使用缩进来表示_Python代码需要缩进吗
  10. ROS中阶笔记(十):ROS机器人综合应用