1
假设我在寄存器v1中有一个32位有符号整数。我想获得这个值的二进制补码存储在另一个寄存器v2中。在正常的数学中,这意味着我需要翻转所有的32位,然后加1. 1.如何翻转这些位?如何在ARM中获得寄存器值的二进制补码?
在此先感谢。
假设我在寄存器v1中有一个32位有符号整数。我想获得这个值的二进制补码存储在另一个寄存器v2中。在正常的数学中,这意味着我需要翻转所有的32位,然后加1. 1.如何翻转这些位?如何在ARM中获得寄存器值的二进制补码?
在此先感谢。
试试这个,(MVN与否定招):
MVN v2, v1
这种 “翻转位” 像你这样问。该你只是做了+1:
ADD v2, v1, #1
或者你可以只使用NEG V2,V1指令(的代名词RSB V2,V1,#0)做单指令相当于操作。
或大于MVN慢一点:
MOV v0,-1
MUL v2,v1,v0
我觉得MVN只组合这些寄存器。 – 2013-04-11 23:12:50
问题是“我该如何翻转位?”。 MVN会翻转这些位。 – 2013-04-12 16:58:42
对不起,对不起... – 2013-04-12 17:31:23