Thumb2 架构的内联汇编器

本文档假定您对汇编语言编程有一定的了解,应在学习本教程后 阅读。有关指令集的详细说明,请参阅下面详述的架构参考手册。内联汇编器支持此处描述的 ARM Thumb-2 指令集的子集。语法试图尽可能接近上述 ARM 手册中定义的语法,转换为 Python 函数调用。

除非另有说明,否则指令对 32 位有符号整数数据进行操作。大多数支持的指令R0-R7 仅对寄存器进行操作:在 R8-R15支持的地方对此进行了说明。R8-R12在从函数返回之前,寄存器必须恢复到它们的初始值。寄存器分别R13-R15构成链接寄存器、堆栈指针和程序计数器。

文档约定

在可能的情况下,每条指令的行为都用 Python 描述,例如

  • 添加(Rd,Rn,Rm)Rd = Rn + Rm

这使得指令的效果能够在 Python 中展示。在某些情况下,这是不可能的,因为 Python 不支持诸如间接性之类的概念。在这种情况下使用的伪代码在相关页面中有描述。

使用示例

这些部分提供了有关汇编程序使用的更多代码示例和提示。

参考