Assembly ARM汇编:MOV指令的基本用法

Assembly ARM汇编:MOV指令的基本用法,assembly,arm,instruction-set,Assembly,Arm,Instruction Set,如何将数字0xefffffff2加载到ARM中的寄存器。 这里面有什么坏处 MVN r0, #2D1 此指令有效吗?mvn只是将0x2D1转换为0xFFFD2E,对吗?您需要所需数字的倒数,即0x1000000D,对吗?Gnu汇编程序正在编码0x2D1,2表示向右旋转4,0xD1表示要旋转的值。你不必担心这个问题,除非你自己编写机器代码,否则你不需要把0x2D1放在汇编语言中,或者放你想要的数字 mov r0,#0xEFFFFFF2 或 或 像gnu assembler这样的汇编器会试图找

如何将数字
0xefffffff2
加载到ARM中的寄存器。
这里面有什么坏处

MVN r0, #2D1 

此指令有效吗?

mvn只是将0x2D1转换为0xFFFD2E,对吗?您需要所需数字的倒数,即0x1000000D,对吗?Gnu汇编程序正在编码0x2D1,2表示向右旋转4,0xD1表示要旋转的值。你不必担心这个问题,除非你自己编写机器代码,否则你不需要把0x2D1放在汇编语言中,或者放你想要的数字

mov r0,#0xEFFFFFF2


像gnu assembler这样的汇编器会试图找到一条指令来解决mov。在这种情况下,它选择mvn r0,#0x1000000D,其他一些汇编器可能不会尝试,只是告诉您常量对mov指令不好,迫使您自己做mvn。或者你可以自己做mvn。对于第三种选择gnu汇编程序,它将尝试mov、mvn,如果两者都不适用于该常数,那么它将把该值放在附近,并进行pc相对加载(消耗两个字的.text空格)。

您尝试了什么,遇到了什么问题?参见示例页面。我突出显示了关键词,并(希望)提高了问题的清晰度。
mvn r0,#0x1000000D
ldr r0,=0xEFFFFFF2