Ich beginne gerade ARM Assembler Sprache zu studieren, und bin nicht klar darüber, wie MOV verwendet wird, um eine unmittelbare Zahl in ein Register zu übertragen.So verwenden Sie MOV-Anweisung in ARM mit einer direkten Nummer als zweiter Operand
Sowohl aus dem ARM-Referenzhandbuch als auch aus meinem Lehrbuch wird gesagt, dass der Bereich der direkten Nummer nach MOV-Befehl 0-255 ist. Aber wenn ich auf meinem eigenen PC in ADS 1.2 IDE teste, funktioniert die Anweisung
gut. Ist die Nummer 0xFFFFFFFF laut Spezifikation nicht im zulässigen Bereich?
Hoffe jemand kann mir eine Hand geben.
Grüße.
@Michael Danke für Ihre Tipps. Das will ich wissen! :-) –
Weiß jemand, warum der Assembler einige Werte aufbaut, aber andere direkt lädt? Beim Umsehen des Newton ROM-Codes (StrongArm 110) gibt es viele "one-instructon loads" (wie "MOV r1, 0x0c1b518"), aber mein gesamter Code kommt mit "Aufbauladungen" aus - wie der folgende Code: –
.. (oops, früher Buchungsfehler) .. wie "MOV r1, 0x0C000000/ADD r1, r1,0x100000". Ich nehme an, dies könnte etwas damit zu tun haben, genau wie der Prozessor 32-Bit-Werte codiert. Ist es effizienter für den Prozessor-Mikrocode, Zahlen mit einem einzigen MOV und dann mit ADDs aufzubauen? –