Thumb2 架构的内联汇编器¶
本文档假定您对汇编语言编程有一定的了解,应在学习本教程后 阅读。有关指令集的详细说明,请参阅下面详述的架构参考手册。内联汇编器支持此处描述的 ARM Thumb-2 指令集的子集。语法试图尽可能接近上述 ARM 手册中定义的语法,转换为 Python 函数调用。
除非另有说明,否则指令对 32 位有符号整数数据进行操作。大多数支持的指令R0-R7
仅对寄存器进行操作:在 R8-R15
支持的地方对此进行了说明。R8-R12
在从函数返回之前,寄存器必须恢复到它们的初始值。寄存器分别R13-R15
构成链接寄存器、堆栈指针和程序计数器。
文档约定¶
在可能的情况下,每条指令的行为都用 Python 描述,例如
添加(Rd,Rn,Rm)
Rd = Rn + Rm
这使得指令的效果能够在 Python 中展示。在某些情况下,这是不可能的,因为 Python 不支持诸如间接性之类的概念。在这种情况下使用的伪代码在相关页面中有描述。
指令类别¶
以下部分详细介绍了 MicroPython 支持的 ARM Thumb-2 指令集的子集。
参考¶
ARM v7-M 体系结构参考手册(经过简单的注册程序后可在 ARM 网站上获得。也可在学术网站上获得,但要注意过时的版本。)