Inline assembler Thumb2 architektúrákhoz¶
Ez a dokumentum némi jártasságot feltételez az assembly nyelvű programozásban. Az utasításkészlet tömör leírásáért tekintsd meg az ARM Thumb-2 Instruction Set Quick Reference Card-ot a lenti References alatt. Az inline assembler az itt ismertetett ARM Thumb-2 utasításkészlet egy részhalmazát támogatja. A szintaxis igyekszik a lehető legközelebb maradni az ARM által definiálthoz, Python függvényhívásokká alakítva.
Az utasítások 32 bites előjeles egész adatokon működnek, kivéve ahol másként van jelezve. A legtöbb támogatott utasítás csak az R0-R7 regisztereken működik: ahol az R8-R15 támogatott, ott ez jelezve van. Az R8-R12 regisztereket a függvényből való visszatérés előtt vissza kell állítani a kezdeti értékükre. Az R13-R15 regiszterek a Link regisztert, a Verem mutatót, illetve a Programszámlálót alkotják.
Dokumentumkonvenciók¶
Ahol lehetséges, az egyes utasítások viselkedése Pythonban van leírva, például
add(Rd, Rn, Rm)
Rd = Rn + Rm
Ez lehetővé teszi az utasítások hatásának Pythonban való bemutatását. Bizonyos esetekben ez lehetetlen, mert a Python nem támogatja az olyan fogalmakat, mint az indirekció. Az ilyen esetekben alkalmazott pszeudokód az adott oldalon van leírva.
Utasításkategóriák¶
A következő szakaszok részletezik az ARM Thumb-2 utasításkészlet MicroPython által támogatott részhalmazát.
- 1. Regiszter mozgató utasítások
- 2. Regiszter betöltése a memóriából
- 3. Regiszter tárolása a memóriába
- 4. Logikai és bitenkénti utasítások
- 5. Aritmetikai utasítások
- 6. Összehasonlító utasítások
- 7. Elágazó utasítások
- 8. Verem push és pop
- 9. Vegyes utasítások
- 10. Lebegőpontos utasítások
- 11. Assembler-direktívák
Használati példák¶
Ezek a szakaszok további kódpéldákat és tippeket nyújtanak az assembler használatához.