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指令集的子集。
用法示例¶
这部分提供使用汇编程序的更多代码示例和提示。
参考目录¶
- 汇编程序教程 Assembler Tutorial
- Wiki提示与技巧
- uPy内联汇编源代码, emitinlinethumb.c
- ARM Thumb2指令集快速参考卡
- RM0090参考指南
- ARM v7-M 构造参考手册(在ARM网站简单注册即可获取,也可在学术网站上获取,请注意过期版本)