如何正确执行ADD / SUB有符号或无符号整数?

时间:2014-01-26 03:28:35

标签: assembly arm

我看到ARM上有ADD条指令,是否适用于signedunsigned int?当使用S后缀指定指令时,某些状态标志应该不同,对吧?比如设置溢出(V)标志。我想知道是否有另一个版本的ADD / SUB来处理其中一个整数。

2 个答案:

答案 0 :(得分:8)

因为ARM使用了两个补码表示,所以有符号和无符号加法(类似的减法)是相同的。唯一的区别是how you interpret the flags afterwards,如果您使用s后缀设置它们。

答案 1 :(得分:5)

二进制补码意味着有符号和无符号加法之间没有区别。 s位确定是否修改了任何标志IF,然后进位是无符号溢出/借位,v是有符号溢出/借位。这些都在ARMs文档中描述。