Inline assembler untuk arsitektur Thumb2¶
Dokumen ini mengasumsikan beberapa keakraban dengan pemrograman bahasa assembly. Untuk deskripsi singkat tentang set instruksi, lihat ARM Thumb-2 Instruction Set Quick Reference Card di bawah References di bawah ini. Inline assembler mendukung subset dari set instruksi ARM Thumb-2 yang dijelaskan di sini. Sintaksnya berusaha sedekat mungkin dengan yang didefinisikan oleh ARM, diubah menjadi pemanggilan fungsi Python.
Instruksi beroperasi pada data bilangan bulat bertanda 32 bit kecuali dinyatakan sebaliknya. Sebagian besar instruksi yang didukung beroperasi hanya pada register R0-R7: di mana R8-R15 didukung, hal ini dinyatakan. Register R8-R12 harus dipulihkan ke nilai awalnya sebelum pengembalian dari fungsi. Register R13-R15 masing-masing merupakan Link Register, Stack Pointer, dan Program Counter.
Konvensi dokumen¶
Di mana memungkinkan, perilaku setiap instruksi dijelaskan dalam Python, misalnya
add(Rd, Rn, Rm)
Rd = Rn + Rm
Ini memungkinkan efek instruksi didemonstrasikan dalam Python. Dalam kasus tertentu ini tidak mungkin karena Python tidak mendukung konsep seperti indirection. Pseudokode yang digunakan dalam kasus seperti itu dijelaskan pada halaman yang relevan.
Kategori instruksi¶
Bagian-bagian berikut merinci subset dari set instruksi ARM Thumb-2 yang didukung oleh MicroPython.
Contoh penggunaan¶
Bagian-bagian ini memberikan contoh kode lebih lanjut dan petunjuk tentang penggunaan assembler.