ARM汇编:MOV指令的基本用法
ARM assembly: Basic usage of the MOV instruction
如何将数字 0xEFFFFFF2
加载到 ARM 中的寄存器。
这会腐烂什么?
MVN r0, #2D1
这条指令有效吗?
mvn 只是将 0x2D1 反转为 0xFFFFFD2E 对吗?您需要所需数字的倒数 0x1000000D 对吗? Gnu 汇编程序正在编码 0x2D1,2 表示向右循环 4,而 0xD1 是要循环的值。你不需要担心这一点,除非你自己制作机器代码你不需要将 0x2D1 放在汇编语言中输入你想要的数字要么这样做
mov r0,#0xEFFFFFF2
或
mvn r0,#0x1000000D
或
ldr r0,=0xEFFFFFF2
像 gnu 汇编器这样的汇编器会尝试找到一条指令来解决 mov 在这种情况下它选择 mvn r0,#0x1000000D,其他一些汇编器可能不会尝试并简单地告诉你你的常量对 mov 不利指令强迫你自己做 mvn。或者你可以自己做mvn。对于 gnu 汇编程序,第三个选择它将尝试 mov、mvn,如果两者都不适用于该常量,那么它将把值放在附近并执行 pc 相对加载(消耗 .text space 的两个单词)。
如何将数字 0xEFFFFFF2
加载到 ARM 中的寄存器。
这会腐烂什么?
MVN r0, #2D1
这条指令有效吗?
mvn 只是将 0x2D1 反转为 0xFFFFFD2E 对吗?您需要所需数字的倒数 0x1000000D 对吗? Gnu 汇编程序正在编码 0x2D1,2 表示向右循环 4,而 0xD1 是要循环的值。你不需要担心这一点,除非你自己制作机器代码你不需要将 0x2D1 放在汇编语言中输入你想要的数字要么这样做
mov r0,#0xEFFFFFF2
或
mvn r0,#0x1000000D
或
ldr r0,=0xEFFFFFF2
像 gnu 汇编器这样的汇编器会尝试找到一条指令来解决 mov 在这种情况下它选择 mvn r0,#0x1000000D,其他一些汇编器可能不会尝试并简单地告诉你你的常量对 mov 不利指令强迫你自己做 mvn。或者你可以自己做mvn。对于 gnu 汇编程序,第三个选择它将尝试 mov、mvn,如果两者都不适用于该常量,那么它将把值放在附近并执行 pc 相对加载(消耗 .text space 的两个单词)。