1. 레지스터 이동 명령어

1.1. 문서 표기 규칙

표기: Rd, Rn은 ARM 레지스터 R0-R15를 나타냅니다. immN은 N비트 폭을 갖는 즉시 값을 나타냅니다. 이 명령어들은 조건 플래그에 영향을 줍니다.

1.2. 레지스터 이동

즉시 값이 사용되는 경우, 이는 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 어셈블러는 32비트 값을 Rd로 이동하기 위해 movw에 이어 movt를 내보냅니다.