Thumb2 架構的內聯組合語言¶
本文件假設讀者對組合語言程式設計有一定的熟悉度。如需指令集的簡明說明,請參閱下方 References 中的《ARM Thumb-2 Instruction Set Quick Reference Card》。內聯組合語言支援此處所述 ARM Thumb-2 指令集的一個子集。其語法盡可能貼近 ARM 所定義的語法,並轉換為 Python 函式呼叫。
除非另有說明,否則指令皆對 32 位元有號整數資料進行運算。大多數受支援的指令僅對暫存器 R0-R7 進行運算:凡支援 R8-R15 之處皆會特別註明。暫存器 R8-R12 在從函式返回前必須還原至其初始值。暫存器 R13-R15 分別構成連結暫存器(Link Register)、堆疊指標(Stack Pointer)與程式計數器(Program Counter)。
文件慣例¶
在可能的情況下,每個指令的行為都會以 Python 描述,例如
add(Rd, Rn, Rm)
Rd = Rn + Rm
這能讓指令的效果以 Python 來示範。在某些情況下這是不可能的,因為 Python 不支援間接定址(indirection)之類的概念。在此類情況下所採用的虛擬碼會在相關頁面上加以說明。
指令類別¶
以下各節詳細說明 MicroPython 所支援的 ARM Thumb-2 指令集子集。
使用範例¶
這些章節提供更多程式碼範例以及組合語言使用上的提示。