我看到ARM上有ADD
条指令,是否适用于signed
和unsigned int
?当使用S
后缀指定指令时,某些状态标志应该不同,对吧?比如设置溢出(V
)标志。我想知道是否有另一个版本的ADD / SUB来处理其中一个整数。
答案 0 :(得分:8)
因为ARM使用了两个补码表示,所以有符号和无符号加法(类似的减法)是相同的。唯一的区别是how you interpret the flags afterwards,如果您使用s
后缀设置它们。
答案 1 :(得分:5)
二进制补码意味着有符号和无符号加法之间没有区别。 s位确定是否修改了任何标志IF,然后进位是无符号溢出/借位,v是有符号溢出/借位。这些都在ARMs文档中描述。