假设我在寄存器 v1 中有一个 32 位有符号 int。我想获取该值的二进制补码以存储在另一个寄存器 v2 中。在普通数学中,这意味着我需要翻转所有 32 位,然后加 1。
如何翻转位?
最佳答案
试试这个,(MVN move with not):
MVN v2, v1
这就像你问的那样“翻转位”。然后你只需执行+1:
ADD v2, v1, #1
或者,您也可以仅使用 NEG v2, v1 指令(RSB v2, v1, #0 的简写)在单个指令中执行等效操作。
关于assembly - ARM中如何获取寄存器值的二进制补码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15959446/