1. レジスタ move 命令

1.1. ドキュメントの表記規則

表記: Rd, Rn は ARM レジスタ R0-R15 を表します。immN は幅 N ビットの即値を表します。これらの命令は条件フラグに影響を与えます。

1.2. レジスタ move

即値が使用される場合、それらは 32 ビットにゼロ拡張されます。したがって mov(R0, 0xff) は R0 を 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 は即値をデスティネーションレジスタの上位ハーフワードに書き込みます。下位ハーフワードの内容には影響を与えません。

  • movwt(Rd, imm32) Rd = imm32

movwt は擬似命令です。MicroPython アセンブラは movw に続いて movt を発行し、32 ビット値を Rd に移動します。