文章目录
什么是JCC指令
- 能够修改EIP寄存器的值
- 不同于之前的JMP、CALL、RET
- 通过标志寄存器中的值判断是否跳转
EFLAGS标志寄存器
- 要想了解JCC指令就要了解标志寄存器,这是它各自代表的功能
CF(0 bit)[Carry flag]
若算数产生的结果在最高有效位发生进位或借位则将其置1,反之清0。
这个标志常用来指示无符号整数运算的溢出状态。
例:
MOV AL,0XFE //向AL寄存器中写入0XFF
ADD AL,2 //向AL寄存器的值+2
运行结果:
PF(2 bit)[Parity flag]
如果结果的最低有效字节包含1的个数为偶数,该位置1,否则清零,这也就是大家把它叫做奇偶校验位的原因。
可以用来进行奇偶校验检查
例:我们现在把113这个数字存到AX里,再给它+1,来判断它的最低有效字节是一个字节还是两个字节。
这里为什么用113呢?因为它转化为二进制是这样的:
MOV AX,113 //把113存到AX里
0000 0001 0001 0011 //113转二进制
ADD AX,