1. Instruções de movimentação de registradores

1.1. Convenções do documento

Notação: Rd, Rn denotam os registradores ARM R0-R15. immN denota um valor imediato com largura de N bits. Estas instruções afetam os flags de condição.

1.2. Movimentações de registradores

Quando valores imediatos são usados, eles são estendidos com zeros para 32 bits. Assim, mov(R0, 0xff) definirá R0 como 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 escreve um valor imediato na halfword superior do registrador de destino. Não afeta o conteúdo da halfword inferior.

  • movwt(Rd, imm32) Rd = imm32

movwt é uma pseudo-instrução: o assembler do MicroPython emite um movw seguido de um movt para mover um valor de 32 bits para Rd.