1. Instrucciones de movimiento de registros

1.1. Convenciones del documento

Notación: Rd, Rn denotan los registros ARM R0-R15. immN denota un valor inmediato con un ancho de N bits. Estas instrucciones afectan a las banderas de condición.

1.2. Movimientos de registros

Cuando se usan valores inmediatos, estos se extienden con ceros a 32 bits. Así, mov(R0, 0xff) establecerá R0 en 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 escribe un valor inmediato en la media palabra superior del registro de destino. No afecta al contenido de la media palabra inferior.

  • movwt(Rd, imm32) Rd = imm32

movwt es una pseudoinstrucción: el ensamblador de MicroPython emite un movw seguido de un movt para mover un valor de 32 bits a Rd.