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 = imm8

  • mov(Rd, Rn) Rd = Rn

  • movw(Rd, imm16) Rd = imm16

  • movt(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.