1. Register-move-instructies¶
1.1. Documentconventies¶
Notatie: Rd, Rn duiden de ARM-registers R0-R15 aan. immN duidt een immediate-waarde aan met een breedte van N bits. Deze instructies beïnvloeden de conditievlaggen.
1.2. Register-moves¶
Waar immediate-waarden worden gebruikt, worden deze met nullen uitgebreid (zero-extended) tot 32 bits. Zo zal mov(R0, 0xff) R0 op 255 zetten.
mov(Rd, imm8)
Rd = imm8mov(Rd, Rn)
Rd = Rnmovw(Rd, imm16)
Rd = imm16movt(Rd, imm16)
Rd = (Rd & 0xffff) | (imm16 << 16)
movt schrijft een immediate-waarde naar het bovenste halfwoord van het bestemmingsregister. Het beïnvloedt de inhoud van het onderste halfwoord niet.
movwt(Rd, imm32)
Rd = imm32
movwt is een pseudo-instructie: de MicroPython-assembler genereert een movw gevolgd door een movt om een 32-bits waarde naar Rd te verplaatsen.