进行比较操作时 机器寄存器的状态

本文详细介绍了CPU中的CF、OF和SF寄存器在进行无符号数和有符号数比较时的角色。CF作为借位标志,SF保存最高位符号,OF指示溢出情况。在比较过程中,通过这三个标志可以判断数值大小关系,特别是在溢出和符号变化时的判断逻辑。
摘要由CSDN通过智能技术生成

主要用到三个寄存器

CF (carry flag)       进位借位标志寄存器

OF(overflow flag) 溢出标志寄存器

SF(sign flag)         符号标志寄存器

在执行计算操作之后,会影响寄存器的值,符号寄存器会保存最高位符号位的值,计算结果超过一个字节表示会把溢出寄存器置为1(对于8086处理器)

1. 两个无符号数比较

      两个无符号数相减,CF是借位标志。如果比较完成后CF=0,表示没有借位,说明被减数(目的操作数)比减数更大。

2. 两个有符号数的比较

      有符号数的最高位表示符号,符号标志位SF总是和计算结果的最高位相同。所以当两个正数相比较或者两个负数相比较时,可以用SF来判断被减数比减数大还是比减数小。如果SF为0,则表示被减数比减数大。

如果SF为1,则表示被减数比减数小。

如果一个为正数,另一个为负数,当两者相比较或者相减时,可能会出现计算溢出的情况。也就是说如果两个数异号 比如127 和-50相比较,两者相减结果溢出,虽然应该时正数,但是由于溢出会导致结果是负数结果,此时SF=1,OF=1,两者相同,被减数比减数大。 如果SF=1,OF=0时,两者不同,被减数比减数小。

所以总结来说,如果溢出标志和符号标志不同说明,被减数比减数小,两者相同,被减数比减数大。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值