1. 暫存器移動指令¶
1.1. 文件慣例¶
標記法:Rd, Rn 表示 ARM 暫存器 R0-R15。immN 表示寬度為 N 位元的立即值。這些指令會影響條件旗標。
1.2. 暫存器移動¶
凡使用立即值之處,這些值都會被零延伸(zero-extend)至 32 位元。因此 mov(R0, 0xff) 會將 R0 設定為 255。
mov(Rd, imm8)
Rd = imm8mov(Rd, Rn)
Rd = Rnmovw(Rd, imm16)
Rd = imm16movt(Rd, imm16)
Rd = (Rd & 0xffff) | (imm16 << 16)
movt 會將一個立即值寫入目的暫存器的高半字組(top halfword)。它不會影響低半字組(bottom halfword)的內容。
movwt(Rd, imm32)
Rd = imm32
movwt 是一個虛擬指令(pseudo-instruction):MicroPython 組合語言會發出一個 movw 後接一個 movt,以將一個 32 位元值移入 Rd。