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

อ้างอิง