Comparisions

博客介绍了CMP指令通过减法进行比较的方式。对于无符号数,依据FLAGS寄存器的2位(ZF、CF)判断大小;对于有符号数,依据3位(ZF、OF、SF)判断。还说明了检查溢出的方法,即MSB的进位和借位不同时产生溢出,正负相加则无溢出。

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

instruction: CMP

comparing by subtraction

for unsigned numbers:

  2 bits in the FLAGS register

      ZF      CF
  =    1       0
  >    0       0
  <    0       1

for signed numbers:

  3 bits in the FLAGS register

      ZF      OF      SF
  =    1       0       0
  >    0      1/0     1/0
  <    0      1/0     0/1

 

the way of examining overflow:

  carry into MSB != carry out of MSB

if
      a positive + a positive --> a negative
or
      a negative + a negative --> a positive
an overflow is generated

if
      a negative + a positive   or   a positive + a negative
there will be no overflow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值