1. Istruzioni di spostamento dei registri

1.1. Convenzioni del documento

Notazione: Rd, Rn indicano i registri ARM R0-R15. immN indica un valore immediato avente una larghezza di N bit. Queste istruzioni influenzano i flag di condizione.

1.2. Spostamenti di registri

Quando si usano valori immediati, questi vengono estesi con zeri a 32 bit. Quindi mov(R0, 0xff) imposterà R0 a 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 scrive un valore immediato nella mezza parola superiore del registro di destinazione. Non influisce sul contenuto della mezza parola inferiore.

  • movwt(Rd, imm32) Rd = imm32

movwt è una pseudo-istruzione: l’assembler di MicroPython emette una movw seguita da una movt per spostare un valore a 32 bit in Rd.