ARM程序集中的负数

时间:2011-12-13 13:57:55

标签: assembly arm

我目前正在努力解决如何在ARM程序集中使用负数。假设我有一个像这样的简单代码:

MOV R0, #0
SUB R0, R0, #1
SWI 4

R0显然会存储值0xFFFFFFFF,但SWI似乎不会将其视为有符号整数,因此显示的数字为4294967295.如何打印出-1?

1 个答案:

答案 0 :(得分:1)

据我了解,SWI 4在OS或任何执行环境中调用一些数字显示例程。如果有适当的SWI some other number用于显示有符号整数,请使用它。你应该提一下你的操作系统。

如果SWI 4没有签名对应物,则计算负数的绝对值(例如从0减去),然后分别显示减号和绝对值。负值的最高位设置为1.