ARM
指令和 CODE32
指令是同义词。 它们指示汇编程序将后面的指令解释为 32 位 ARM 指令。 必要时,它们也可插入最多三个填充字节,以对齐到下一个字边界。
在此模式下,汇编程序接受最新版本和旧版本的汇编语言。
在包含使用不同指令集的代码的文件中:
-
ARM
必须位于任何 ARM 代码之前。CODE32
是ARM
的同义词。 -
THUMB
必须位于用新语法编写的 Thumb 代码之前。 -
THUMBX
必须位于用新语法编写的 Thumb‑2EE 代码之前。 -
CODE16
必须位于用旧 Thumb 语法编写的 Thumb 代码之前。
这些命令不汇编为改变状态的指令。 它们仅指示汇编程序适当地汇编 ARM、Thumb‑2、Thumb‑2EE 或 Thumb 指令,并在必要时插入填充字节。
此示例演示如何使用 ARM
和 CODE16
从 ARM 指令跳转到 16 位 Thumb 指令。
AREA ToThumb, CODE, READONLY ; Name this block of code ENTRY ; Mark first instruction to execute ARM ; Subsequent instructions are ARM start ADR r0, into_thumb + 1 ; Processor starts in ARM state BX r0 ; Inline switch to Thumb state THUMB ; Subsequent instructions are Thumb into_thumb MOVS r0, #10 ; New‑style Thumb instructions