1. Instrucțiuni de mutare a registrelor#

1.1. Convenții ale documentului#

Notație: Rd, Rn denotă registrele ARM R0-R15. immN denotă o valoare imediată având o lățime de N biți. Aceste instrucțiuni afectează indicatorii de condiție.

1.2. Mutări de registre#

Atunci când se folosesc valori imediate, acestea sunt extinse cu zerouri până la 32 de biți. Astfel mov(R0, 0xff) va seta R0 la 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 scrie o valoare imediată în jumătatea superioară de cuvânt a registrului de destinație. Nu afectează conținutul jumătății inferioare de cuvânt.

  • movwt(Rd, imm32) Rd = imm32

movwt este o pseudo-instrucțiune: asamblorul MicroPython emite un movw urmat de un movt pentru a muta o valoare pe 32 de biți în Rd.