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.