一.简单认识JCC指令(也可以改EIP的寄存器但得看条件)
由下图可以看出JCC指令和很多标志寄存器有关
标志寄存器的不一样也就表示JCC指令的含义不同
所以 学习JCC指令实际上是学习标志寄存器
二.标志寄存器(32位)
2.1 CF位(判断无符号数运算之后结果有没有溢出)
当无符号数发生进位或借位的时候,CF就是1,否则就是0
2.2 PF位(奇偶校验位)
注意是最低有效字节 也就是最后一个不为全0 的字节
2.3 AF位(辅助进位标志 很少用到)
2.4 ZF位(常见)
很好理解
CMP执行的结果不放在EAX里,它只影响标志位
2.5 SF位
2.6 OF位
CF位也是看溢出的但并不能满足我们。因为CF只是反应无符号位
2.7 DF位
如果想改动DF的值 STD指令就是把DF改为1 CLD就是把DF改为0
三.深入看JCC
举例1
所以的jcc指令到底修不修改EIP的值 只看标志位
原文地址:https://www.cnblogs.com/cat47/p/12292770.html
时间: 2024-10-24 11:26:04