何时设置溢出标志?

时间:2018-12-10 20:12:24

标签: assembly arm compiler-flags

有人可以解释为什么在这里设置溢出标志吗?我了解到,设置为正数加负数还是减负数为正数!

    LDR     r0,=0X80000000
    LDR     r1,=0X40000000

    SUBS        r7,r10,r0

1 个答案:

答案 0 :(得分:0)

0x8-0x4应该足以看到这个

0x8-0x4 = 0x8 +(0x4)

     1
  1000
+ 1011
=======

完成数学

 10111
  1000
+ 1011
=======
  0100

进位和进位的msbit不同,因此设置了有符号溢出(V)。

是的,如果您查看msbit加法器的真值表,则可以从符号位中得知。

编辑-----

Ahh假设是r1而不是r10

0x4-0x8

  01111
   0100
+  0111
========
   1100

溢出。