1. Registerflyttinstruktioner

1.1. Dokumentkonventioner

Notation: Rd, Rn betecknar ARM-registren R0-R15. immN betecknar ett omedelbart värde med en bredd av N bitar. Dessa instruktioner påverkar villkorsflaggorna.

1.2. Registerflyttar

Där omedelbara värden används nollutökas dessa till 32 bitar. Således kommer mov(R0, 0xff) att sätta R0 till 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 skriver ett omedelbart värde till det översta halvordet i destinationsregistret. Det påverkar inte innehållet i det nedre halvordet.

  • movwt(Rd, imm32) Rd = imm32

movwt är en pseudoinstruktion: MicroPython-assemblern genererar ett movw följt av ett movt för att flytta ett 32-bitarsvärde till Rd.