THumb2构架的内联汇编

本文件假定您熟悉汇编语言编程,故您应在学习教程( tutorial)后阅读本文件。 有关指令集的详细说明,请参阅《体系结构参考手册》。内联汇编器支持此处介绍的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指令集的子集。

用法示例

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

参考目录