面向 Thumb2 架构的内联汇编器

本文档假定读者对汇编语言编程有一定的了解。关于指令集的简明描述,请参阅下方 References 中的 ARM Thumb-2 Instruction Set Quick Reference Card。内联汇编器支持此处描述的 ARM Thumb-2 指令集的一个子集。其语法力求尽可能接近 ARM 所定义的语法,并转换为 Python 函数调用。

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

文档约定

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

  • add(Rd, Rn, Rm) Rd = Rn + Rm

这使得指令的效果可以用 Python 来演示。在某些情况下这是不可能的,因为 Python 不支持诸如间接寻址之类的概念。在这种情况下所采用的伪代码会在相关页面上加以描述。

指令分类

以下各节详细介绍了 MicroPython 所支持的 ARM Thumb-2 指令集子集。

用法示例

这些章节提供了关于使用汇编器的更多代码示例和提示。

参考资料