Wie bekommen Zweierkomplement eines registerwert in den ARM?
Sagen, ich habe einen 32 bit signed int im register v1. Ich möchte das Zweierkomplement dieser Wert zum speichern in einem anderen register v2. Im normalen Mathe das heißt, ich brauche, flip alle 32 bits und addieren dann 1.
Wie kann ich die bits spiegeln?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese, (MVN bewegen mit Negation):
Diese "kippt die bits", wie Sie gebeten. Das tun Sie nur den +1:
Alternativ können Sie einfach die NEG v2, v1 Anweisungen (ein synonym für RSB-v2, v1 -, #0), um die äquivalente operation in einer einzigen Instruktion.
Oder ein wenig langsamer als der MVN:
MOV v0,-1
MUL v2,v1,v0