逆向基础:汇编(JCC指令)

本文详细介绍了x86架构中JCC(条件跳转)指令的用法,包括JZ、JNZ、JS、JNS等,这些指令根据标志寄存器EFLAGS的特定标志如ZF、SF、PF和OF来决定是否执行跳转。通过这些指令,可以实现条件分支,例如判断数值是否相等、正负、溢出等。了解这些指令对于理解x86汇编语言编程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所有JCC指令的动作->根据标志寄存器修改EIP的值

标志寄存器 EFLAGS

20200120152146.png

JCC指令中文含义英文原意检查符号位典型C应用
JZ/JE若为0则跳转;若相等则跳转jump if zero;jump if equalZF=1if (i == j);if (i == 0);
JNZ/JNE若不为0则跳转;若不相等则跳转jump if not zero;jump if not equalZF=0if (i != j);if (i != 0);
JS若为负则跳转jump if signSF=1if (i < 0);
JNS若为正则跳转jump if not signSF=0if (i > 0);
JP/JPE若1出现次数为偶数则跳转jump if Parity (Even)PF=1(null)
JNP/JPO若1出现次数为奇数则跳转jump if not parity (odd)PF=0(null)
JO若溢出则跳转jump if overflowOF=1(null)
JNO若无溢出则跳转jump if not overflowOF=0(null)
JC/JB/JNAE若进位则跳转;若低于则跳转;若不高于等于则跳转jump if carry;jump if below;jump if not above equalCF=1if (i < j);
JNC/JNB/JAE若无进位则跳转;若不低于则跳转;若高于等于则跳转;jump if not carry;jump if not below;jump if above equalCF=0if (i >= j);
JBE/JNA若低于等于则跳转;若不高于则跳转jump if below equal;jump if not aboveZF=1或CF=1if (i <= j);
JNBE/JA若不低于等于则跳转;若高于则跳转jump if not below equal;jump if aboveZF=0或CF=0if (i > j);
JL/JNGE若小于则跳转;若不大于等于则跳转jump if less;jump if not greater equalSF != OFif (si < sj);
JNL/JGE若不小于则跳转;若大于等于则跳转;jump if not less;jump if greater equalSF = OFif (si >= sj);
JLE/JNG若小于等于则跳转;若不大于则跳转jump if less equal;jump if not greaterZF != OF 或 ZF=1if (si <= sj);
JNLE/JG若不小于等于则跳转;若大于则跳转jump if not less equal;jump if greaterSF=0F 且 ZF=0if(si>sj)

更详细参考:https://www.jb51.net/article/178949.htmicon-default.png?t=L9C2https://www.jb51.net/article/178949.htm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值