Inbyggd assembler för Thumb2-arkitekturer

Detta dokument förutsätter viss kännedom om assemblerspråksprogrammering. För en kortfattad beskrivning av instruktionsuppsättningen, se ARM Thumb-2 Instruction Set Quick Reference Card under References nedan. Den inbyggda assemblern stöder en delmängd av den ARM Thumb-2-instruktionsuppsättning som beskrivs här. Syntaxen försöker ligga så nära som möjligt den som definieras av ARM, omvandlad till Python-funktionsanrop.

Instruktioner opererar på 32-bitars signerade heltalsdata förutom där annat anges. De flesta instruktioner som stöds opererar endast på registren R0-R7: där R8-R15 stöds anges detta. Registren R8-R12 måste återställas till sina ursprungsvärden innan en funktion returnerar. Registren R13-R15 utgör länkregistret, stackpekaren respektive programräknaren.

Dokumentkonventioner

Där det är möjligt beskrivs varje instruktions beteende i Python, till exempel

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

Detta gör det möjligt att demonstrera instruktionernas effekt i Python. I vissa fall är detta omöjligt eftersom Python inte stöder begrepp som indirektion. Den pseudokod som används i sådana fall beskrivs på den relevanta sidan.

Instruktionskategorier

Följande avsnitt beskriver i detalj den delmängd av ARM Thumb-2-instruktionsuppsättningen som stöds av MicroPython.

Användningsexempel

Dessa avsnitt ger ytterligare kodexempel och tips om användning av assemblern.

Referenser