Sulautettu assembler Thumb2-arkkitehtuureille

Tämä dokumentti olettaa jonkin verran tuntemusta assembly-ohjelmoinnista. Käskykannan tiiviin kuvauksen saat ARM Thumb-2 Instruction Set Quick Reference Card -kortista kohdassa References alla. Sulautettu assembler tukee tässä kuvattua ARM Thumb-2 -käskykannan osajoukkoa. Syntaksi pyrkii olemaan mahdollisimman lähellä ARM:n määrittelemää, Python-funktiokutsuiksi muunnettuna.

Käskyt operoivat 32-bittisellä etumerkillisellä kokonaislukudatalla, ellei toisin mainita. Useimmat tuetut käskyt operoivat vain rekistereillä R0-R7: kun R8-R15 ovat tuettuja, se mainitaan. Rekisterit R8-R12 on palautettava alkuperäiseen arvoonsa ennen funktiosta palaamista. Rekisterit R13-R15 muodostavat vastaavasti linkkirekisterin, pino-osoittimen ja ohjelmalaskurin.

Dokumentin merkintätavat

Aina kun mahdollista, kunkin käskyn toiminta on kuvattu Pythonissa, esimerkiksi

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

Tämä mahdollistaa käskyjen vaikutuksen havainnollistamisen Pythonissa. Joissakin tapauksissa tämä on mahdotonta, koska Python ei tue käsitteitä kuten epäsuora osoitus. Tällaisissa tapauksissa käytetty pseudokoodi kuvataan asianomaisella sivulla.

Käskyjen luokat

Seuraavat osiot kuvaavat yksityiskohtaisesti sen ARM Thumb-2 -käskykannan osajoukon, jota MicroPython tukee.

Käyttöesimerkkejä

Nämä osiot tarjoavat lisää koodiesimerkkejä ja vinkkejä assemblerin käytöstä.

Lähteet