1. Инструкции перемещения регистров¶
1.1. Соглашения документа¶
Обозначения: Rd, Rn обозначают регистры ARM R0-R15. immN обозначает непосредственное значение шириной N бит. Эти инструкции влияют на флаги условий.
1.2. Перемещения регистров¶
При использовании непосредственных значений они дополняются нулями до 32 бит. Таким образом, mov(R0, 0xff) установит R0 в 255.
mov(Rd, imm8)
Rd = imm8mov(Rd, Rn)
Rd = Rnmovw(Rd, imm16)
Rd = imm16movt(Rd, imm16)
Rd = (Rd & 0xffff) | (imm16 << 16)
movt записывает непосредственное значение в верхнее полуслово регистра назначения. Он не влияет на содержимое нижнего полуслова.
movwt(Rd, imm32)
Rd = imm32
movwt — это псевдоинструкция: ассемблер MicroPython генерирует movw, за которым следует movt, чтобы переместить 32-битное значение в Rd.