如何在ARM中的二进制补码中找到整数的绝对值

时间:2018-11-15 01:59:21

标签: assembly arm twos-complement absolute-value

如果我有-2(11111111111111111111111111111111110),是否有一个整洁的ARM指令或一系列这样的指令(00000000000000000000000000000010)。自从我松开了第30位以来,OR或XOR无法正常工作。

谢谢

1 个答案:

答案 0 :(得分:4)

要查找整数的绝对值,请使用比较和减法。

@ input in r0
cmp r0, #0          @ is r0 < 0?
rsbmi r0, r0 #0     @ if yes, r0 = 0 - r0