在程序集中更改符号(16 位)

Changing sign in assembly (16 bit)

我应该将一个 16 位值从正值更改为负值。在谷歌上搜索了几分钟后,我找到了一个解决方案,但我仍然不确定它是否正确,如果你能帮助我,那就太好了。赞赏!

eor r4, r1, #0x80000000

使用 reverse subtract 指令 rsb执行任务。

rsb r4, r1, #0   @ computes r4 = 0 - r1

此指令在 ARM 和 Thumb 状态下均可用,尽管 Thumb1 只有

rsbs Rd, Rn, #0

限制直接操作数为#0