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 = imm8mov(Rd, Rn)
Rd = Rnmovw(Rd, imm16)
Rd = imm16movt(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.