Asamblor inline pentru arhitecturile Thumb2

Acest document presupune o oarecare familiaritate cu programarea în limbaj de asamblare. Pentru o descriere concisă a setului de instrucțiuni, consultați ARM Thumb-2 Instruction Set Quick Reference Card din secțiunea References de mai jos. Asamblorul inline acceptă un subset al setului de instrucțiuni ARM Thumb-2 descris aici. Sintaxa încearcă să fie cât mai apropiată posibil de cea definită de ARM, convertită în apeluri de funcții Python.

Instrucțiunile operează pe date întregi cu semn pe 32 de biți, cu excepția cazurilor în care se specifică altfel. Majoritatea instrucțiunilor acceptate operează numai pe registrele R0-R7: acolo unde R8-R15 sunt acceptate, acest lucru este menționat. Registrele R8-R12 trebuie restaurate la valoarea lor inițială înainte de revenirea dintr-o funcție. Registrele R13-R15 constituie respectiv registrul de legătură (Link Register), indicatorul de stivă (Stack Pointer) și contorul de program (Program Counter).

Convenții ale documentului

Acolo unde este posibil, comportamentul fiecărei instrucțiuni este descris în Python, de exemplu

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

Acest lucru permite ca efectul instrucțiunilor să fie demonstrat în Python. În anumite cazuri acest lucru este imposibil deoarece Python nu acceptă concepte precum indirectarea. Pseudocodul folosit în astfel de cazuri este descris în pagina relevantă.

Categorii de instrucțiuni

Secțiunile următoare detaliază subsetul setului de instrucțiuni ARM Thumb-2 acceptat de MicroPython.

Exemple de utilizare

Aceste secțiuni oferă exemple suplimentare de cod și indicații privind utilizarea asamblorului.

Referințe