汇编中的标志位与JCC指令学习总结

本文介绍了汇编语言中的JCC指令,这些指令依赖于EFLAGS标志寄存器的值来决定是否跳转。详细讲解了EFLAGS寄存器中的CF、PF、AF、ZF、SF、OF和DF标志位的含义及应用场景,并给出了多个实例来演示这些标志位如何影响程序执行。最后,列举了常用的JCC指令并强调了理解和掌握标志寄存器对于汇编编程的重要性。
摘要由CSDN通过智能技术生成

什么是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,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值