Inline assembler สำหรับสถาปัตยกรรม Thumb2¶
เอกสารนี้สันนิษฐานว่ามีความคุ้นเคยกับการเขียนโปรแกรม assembly language ในระดับหนึ่ง สำหรับคำอธิบายอย่างย่อของชุดคำสั่งโปรดดู ARM Thumb-2 Instruction Set Quick Reference Card ภายใต้ References ด้านล่าง inline assembler รองรับชุดย่อยของชุดคำสั่ง ARM Thumb-2 ที่อธิบายไว้ที่นี่ ไวยากรณ์พยายามให้ใกล้เคียงกับที่กำหนดโดย ARM มากที่สุดเท่าที่จะเป็นไปได้ โดยแปลงเป็นการเรียกฟังก์ชัน Python
คำสั่งทำงานกับข้อมูลจำนวนเต็มแบบมีเครื่องหมาย 32 บิต ยกเว้นในกรณีที่ระบุไว้เป็นอย่างอื่น คำสั่งที่รองรับส่วนใหญ่ทำงานกับรีจิสเตอร์ R0-R7 เท่านั้น: ในกรณีที่รองรับ R8-R15 จะระบุไว้ รีจิสเตอร์ R8-R12 ต้องได้รับการกู้คืนให้มีค่าเริ่มต้นก่อนส่งคืนจากฟังก์ชัน รีจิสเตอร์ R13-R15 เป็น Link Register, Stack Pointer และ Program Counter ตามลำดับ
ข้อตกลงในเอกสาร¶
เมื่อเป็นไปได้ พฤติกรรมของแต่ละคำสั่งจะอธิบายใน Python ตัวอย่างเช่น
add(Rd, Rn, Rm)
Rd = Rn + Rm
ซึ่งช่วยให้สามารถแสดงผลของคำสั่งใน Python ได้ ในบางกรณีนี้เป็นไปไม่ได้เนื่องจาก Python ไม่รองรับแนวคิดเช่น indirection โค้ดเทียม (pseudocode) ที่ใช้ในกรณีดังกล่าวได้อธิบายไว้ในหน้าที่เกี่ยวข้อง
หมวดหมู่คำสั่ง¶
ส่วนต่อไปนี้อธิบายรายละเอียดชุดย่อยของชุดคำสั่ง ARM Thumb-2 ที่รองรับโดย MicroPython
ตัวอย่างการใช้งาน¶
ส่วนเหล่านี้ให้ตัวอย่างโค้ดเพิ่มเติมและคำแนะนำในการใช้งาน assembler