1. คำสั่งย้ายรีจิสเตอร์

1.1. ข้อตกลงในเอกสาร

สัญลักษณ์: Rd, Rn หมายถึงรีจิสเตอร์ ARM R0-R15 immN หมายถึงค่า immediate ที่มีความกว้าง N บิต คำสั่งเหล่านี้มีผลต่อค่าสถานะเงื่อนไข

1.2. การย้ายรีจิสเตอร์

เมื่อใช้ค่า immediate ค่าเหล่านั้นจะถูกขยายด้วยศูนย์เป็น 32 บิต ดังนั้น mov(R0, 0xff) จะตั้ง R0 เป็น 255

  • mov(Rd, imm8) Rd = imm8

  • mov(Rd, Rn) Rd = Rn

  • movw(Rd, imm16) Rd = imm16

  • movt(Rd, imm16) Rd = (Rd & 0xffff) | (imm16 << 16)

movt เขียนค่า immediate ไปยัง top halfword ของรีจิสเตอร์ปลายทาง มันไม่ส่งผลต่อเนื้อหาของ bottom halfword

  • movwt(Rd, imm32) Rd = imm32

movwt เป็น pseudo-instruction: MicroPython assembler สร้าง movw ตามด้วย movt เพื่อย้ายค่า 32 บิตเข้าสู่ Rd