1. Register-Verschiebeanweisungen

1.1. Dokumentkonventionen

Notation: Rd, Rn bezeichnen die ARM-Register R0-R15. immN bezeichnet einen unmittelbaren Wert mit einer Breite von N Bits. Diese Anweisungen beeinflussen die Bedingungs-Flags.

1.2. Register-Verschiebungen

Wo unmittelbare Werte verwendet werden, werden diese auf 32 Bit mit Nullen erweitert. So setzt mov(R0, 0xff) R0 auf 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 schreibt einen unmittelbaren Wert in das obere Halbwort des Zielregisters. Es beeinflusst nicht den Inhalt des unteren Halbworts.

  • movwt(Rd, imm32) Rd = imm32

movwt ist eine Pseudo-Anweisung: der MicroPython-Assembler gibt ein movw gefolgt von einem movt aus, um einen 32-Bit-Wert nach Rd zu verschieben.