x86汇编 条件跳转
条件跳转表


汇编语言-条件跳转指令
| 直接转移指令 | ||||
|---|---|---|---|---|
| 指令格式 | 机器码 | 测试标志 | 条件说明 | 符号 |
| JO OPR | 70 | OF=1 | 结果有溢出 | |
| JNO OPR | 71 | OF=0 | 结果无溢出 | |
| JC OPR | 72 | CF=1 | 小于 | < |
| JNC OPR | 73 | CF=0 | 大于或等于 | >= |
| JZ/JE OPR | 74 | ZF=1 | 结果为0 | == |
| JNZ/JNE OPR | 75 | ZF=0 | 结果非0 | != |
| JS OPR | 78 | SF=1 | 结果为负 | <0 |
| JNS OPR | 79 | SF=0 | 结果为正 | >0 |
| JP/JPE OPR | 7A | PF=1 | 结果中1的个数为偶数 | |
| JNP/JPO OPR | 7B | PF=0 | 结果中1的个数为奇数 | |
| 间接转移指令-无符号数 | ||||
|---|---|---|---|---|
| 指令格式 | 机器码 | 测试标志 | 条件说明 | 符号 |
| JB/JNAE OPR | 72 | CF=1 | 低于/不高于且不等于 | < |
| JNB/JAE OPR | 73 | CF=0 | 不低于/高于或等于 | >= |
| JBE/JNA OPR | 76 | (CF=1)|(ZF=1) | 低于或等于/不高于 | <= |
| JNBE/JA OPR | 77 | (CF=0)&(ZF=0) | 不低于且不等于/高于 | > |
| 间接转移指令-有符号数 | ||||
|---|---|---|---|---|
| 指令格式 | 机器码 | 测试标志 | 条件说明 | 符号 |
| JL/JNGE OPR | 7C | (SF^OF)=1 | 小于/不大于且不等于 | < |
| JNL/JGE OPR | 7D | (SF^OF)=0 | 不小于/大于或等于 | >= |
| JLE/JNG OPR | 7E | (SF^OF)=1|(ZF=1) | 小于或等于/不大于 | <= |
| JNLE/JG OPR | 7F | (SF^OF)=0&(ZF=0) | 不小于且不等于/大于 | > |
理解方法:
N: Not
E: Equal
A: Above
B: Below
L: Less (Little的比较级)
G: Greater (Great的比较级)
Less Than : 小于
Greater Than: 大于
(SF^OF)=1 --> SF=0,OF=1 --> a < b
SF=1,OF=0 --> a < b
(SF^OF)=0 --> SF=1,OF=1 --> a > b
SF=0,OF=0 --> a >= b
条件跳转指令是根据标志寄存器中的相关标志位的值来进行跳转的,因此,条件跳转指令只能与那些能够影响标志寄存器的相关标志位的指令配合使用;
能够直接影响标志寄存器的相关标志位的指令有:
1、算术运算指令 : add、sub、adc、sbb、inc、dec、neg、mul、div、imul、idiv,等等;
2、按位逻辑运算 : and、or、xor、not,等等;
3、比较运算指令 : cmp、test;
4、移位操作指令 : shr、shl、sar、sal、ror、rol、rcr、rcl;
5、BCD数调整指令: aaa、aas、daa、das、aam、aad;
6、标志处理指令 : clc、stc、cmc、cld、std、cli、sti;
能够间接影响标志寄存器的相关标志位的指令序列有:
pushf --> pop eax --> modify eax --> push eax --> popf
即:
pushf
pop eax
modify eax
push eax
popf
jbe OPR
这样的一系列操作之后,条件转移指令"jbe OPR"也可以根据标志寄存器的相关标志位进行转移;
x86汇编 条件跳转的更多相关文章
- 汇编 sub减法指令 比较指令CMP JZ条件跳转指令
二.SUB指令 减法指令SUB (SUBtract) 格式: SUB A,B //A=A-B; 功能: 两个操作数的相减,即从A中减去B,其结果放在A中. 二.CMP 和JZ 指令 比较指令CMP 格 ...
- 对X86汇编的理解与入门
本文描述基本的32位X86汇编语言的一个子集,其中涉及汇编语言的最核心部分,包括寄存器结构,数据表示,基本的操作指令(包括数据传送指令.逻辑计算指令.算数运算指令),以及函数的调用规则.个人认为:在理 ...
- 寄存器理解 及 X86汇编入门
本文整理自多材料源,感谢原址分享,请查看末尾Url I, 汇编语言分类: 汇编语言和CPU息息相关,但是不能把汇编语言完全等同于CPU的机器指令.不同架构的CPU指令并不相同,如x86,powerpc ...
- X86汇编概要
来自:https://www.cnblogs.com/jiftle/p/8453106.html 本文翻译自:http://www.cs.virginia.edu/~evans/cs216/guide ...
- x86汇编之十(使用字符串)
x86汇编之十(使用字符串) 转自网络,出处不详 一.传送字符串 Intel提供了完整的字符串传送指令,就像是MOV指令一样. 1.MOVS指令 1)movs指令格式 把字符串从一个位内存位置传送到另 ...
- X86汇编——计算斐波那契数列程序(详细注释和流程图说明)
X86汇编实现斐波那契数列 程序说明: 输入斐波那契数列的项数, 然后依次输出斐波那契数列, 输入的项数小于256且为数字, 计算的项数不能超过2^16次方, 输入失败是 不会回显数字 因为存结果是A ...
- x86汇编反编译到c语言之——(2)if语句
一. 测试的C语句及编译后的x86汇编代码 int a; int b; int main(void) { int c; if (c) a = 4; else b = 5; return 0; } 1 ...
- 汇编条件判断整理(JCC,CMP/TEST的实现)
比较的实现 我们知道CMP是比较两个寄存器内容的指令,但这是如何实现的? 当执行到CMP指令的时候会读取这两个寄存器的内容,并加以减法运算,结果本身不保留,并按照结果设置符号位(属算术运算). CMP ...
- x86汇编指令脚本虚拟机
简介 这是一个可以直接解释执行从ida pro里面提取出来的x86汇编代码的虚拟机. 非常精简,整体架构上不能跟那些成熟的虚拟机相比,主要目标是够用.能用.轻量就行,如果觉得代码架构设计的不是很好的话 ...
随机推荐
- 微服务架构Day04-SpringBoot之web开发
引入项目 把html页面放在模板引擎文件夹templates下,这样能使用模板引擎的功能. 登录页面国际化 国际化:编写国际化配置文件 1.编写国际化配置文件,抽取页面需要显示的国际化消息 2.Spr ...
- js console API All In One
js console API All In One const log = console.log; for(const key in console) { log(`navigator.${key} ...
- Android 如何设置 WebView 的屏幕占比
Android 如何设置 WebView 的屏幕占比 由于 Android 适用于具有各种屏幕尺寸和像素密度的设备,因此您在设计网页时应将这些因素纳入考虑范围,以便您的网页始终以合适的尺寸显示. We ...
- lightning & web components & templates & slots
lightning & web components & templates & slots Web components, Custom elements, Template ...
- asm align 对齐数据
最大成员dword data: dd 1 db 2 align 4 dw 3 000E0010 - 01 00 00 00 000E0014 - 02 00 00 00 000E0018 - 03 0 ...
- http接口的学习(暂时只是记录,测试之后重新更新)
链接1:https://blog.csdn.net/java173842219/article/details/54020168 链接2:https://blog.csdn.net/u01132074 ...
- Java多线程并发编程/锁的理解
一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...
- Cannot resolve MVC View
在搭建springboot项目时报错:Cannot resolve MVC View "index" 那是因为在pom中缺少依赖 <dependency> <gr ...
- DRF 三大认证之身份认证
目录 路由组件补充 三大认证 一.身份认证 1.如何进行身份认证 2.jwt认证规则原理 3.jwt的组成 4.jwt的使用方法 4.1 签发算法 4.2 校验算法 4.3 刷新算法 二.权限认证 三 ...
- Wireshark使用记录
TCP/IP协议族里的协议众多 要一一精通比较困难,在一些紧急急需要分析主机.客户端的流量场景时,不懂协议也要上!下面就是用到哪里就记录到哪,有错误欢迎评论指出,多谢. wireshark这玩意相当于 ...