1. Register move instructions¶
1.1. Document conventions¶
Notation: Rd, Rn denote ARM registers R0-R15. immN denotes an immediate
value having a width of N bits. These instructions affect the condition flags.
1.2. Register moves¶
Where immediate values are used, these are zero-extended to 32 bits. Thus
mov(R0, 0xff) will set R0 to 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 writes an immediate value to the top halfword of the destination register. It does not affect the contents of the bottom halfword.
- movwt(Rd, imm32) - Rd = imm32
movwt is a pseudo-instruction: the MicroPython assembler emits a movw followed
by a movt to move a 32-bit value into Rd.