Inline assembler pro architektury Thumb2

Tento dokument předpokládá určitou znalost programování v jazyce symbolických adres. Pro stručný popis instrukční sady viz ARM Thumb-2 Instruction Set Quick Reference Card pod References níže. Inline assembler podporuje podmnožinu instrukční sady ARM Thumb-2 popsanou zde. Syntaxe se snaží být co nejblíže té definované firmou ARM, převedené na volání Python funkcí.

Instrukce pracují s 32bitovými celočíselnými daty se znaménkem, není-li uvedeno jinak. Většina podporovaných instrukcí pracuje pouze s registry R0-R7: tam, kde jsou podporovány R8-R15, je to uvedeno. Registry R8-R12 musí být před návratem z funkce obnoveny na svou počáteční hodnotu. Registry R13-R15 představují postupně Link Register, Stack Pointer a Program Counter.

Konvence dokumentu

Kde je to možné, je chování každé instrukce popsáno v Pythonu, například

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

To umožňuje demonstrovat účinek instrukcí v Pythonu. V určitých případech je to nemožné, protože Python nepodporuje koncepty jako nepřímé odkazování. Pseudokód použitý v takových případech je popsán na příslušné stránce.

Kategorie instrukcí

Následující sekce podrobně popisují podmnožinu instrukční sady ARM Thumb-2 podporovanou MicroPythonem.

Příklady použití

Tyto sekce poskytují další příklady kódu a tipy k použití assembleru.

Reference