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 のアセンブラは、32 ビットの値を Rd に移動するために movw に続けて movt を出力します。