CONTENTS
备注:
1 本部分文档摘录自ARM网站【 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ic/index.html 】,版权归属于ARM。
2 作者只摘录了部分内容,全面详细的内容清参考ARM网址。
7.7.1. ARM、THUMB、THUMBX、CODE16 和 CODE32
ARM 指令和 CODE32 指令是同义词。 它们使用 UAL 或 Thumb-2 以前的汇编语言语法,指示汇编器将后续指令解释为 ARM 指令。
THUMB 指令使用 UAL 语法,指示汇编器将后续指令解释为 Thumb 指令。
THUMBX 指令使用 UAL 语法,指示汇编器将后续指令解释为 Thumb-2EE 指令。
CODE16 指令使用 UAL 以前的汇编语言语法,指示汇编器将后续指令解释为 Thumb 指令。
必要时,这些指令也可插入最多三个填充字节,以对齐到 ARM 的下一个字边界,或插入最多一个填充字节,以对齐到 Thumb 或 Thumb-2EE 的下一个半字边界。
语法
ARM
THUMB
THUMBX
CODE16
CODE32
用法
在包含使用不同指令集的代码的文件中:
ARM 必须位于任何 ARM 代码之前。 CODE32 是 ARM 的同义词。
THUMB 必须位于用 UAL 语法编写的 Thumb 代码之前。
THUMBX 必须位于用 UAL 语法编写的 Thumb-2EE 代码之前。
CODE16 必须位于用 UAL 以前的语法编写的 Thumb 代码之前。
这些命令不汇编为任何指令, 也不更改状态。 它们仅指示汇编器适当地汇编 ARM、Thumb 或 Thumb-2EE 指令,并在必要时插入填充字节。
示例
此示例演示如何使用 ARM 和 THUMB 从 ARM 指令跳转到 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
发表评论