1. Instructions de déplacement de registre

1.1. Conventions du document

Notation : Rd, Rn désignent les registres ARM R0-R15. immN désigne une valeur immédiate d’une largeur de N bits. Ces instructions affectent les drapeaux de condition.

1.2. Déplacements de registre

Lorsque des valeurs immédiates sont utilisées, celles-ci sont étendues par des zéros à 32 bits. Ainsi, mov(R0, 0xff) mettra R0 à 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 écrit une valeur immédiate dans le demi-mot supérieur du registre de destination. Il n’affecte pas le contenu du demi-mot inférieur.

  • movwt(Rd, imm32) Rd = imm32

movwt est une pseudo-instruction : l’assembleur MicroPython émet un movw suivi d’un movt pour déplacer une valeur de 32 bits dans Rd.