4.13.2. MOV32 의사 명령어

다음 중 하나를 사용하여 레지스터를 로드합니다.

MOV32는 항상 두 개의 32비트 명령어, MOV, MOVT 쌍을 생성합니다. 따라서 임의의 32비트 상수를 로드하거나 전체 32비트 주소 공간에 액세스할 수 있습니다.

구문

MOV32{cond} Rd, expr

인수 설명:

cond

선택적 조건 코드입니다 (조건부 실행 참조).

Rd

로드할 레지스터입니다. Rd는 sp 또는 pc이면 안 됩니다.

expr

다음 중 하나일 수 있습니다.

symbol

현재 프로그램 영역이나 다른 프로그램 영역에 있는 레이블

constant

임의의 32비트 상수

symbol + constant

레이블에 32비트 상수를 더한 값

사용법

MOV32 의사 명령어의 주 목적은 다음과 같습니다.

  • 단일 명령어로 즉치값을 생성할 수 없을 때 리터럴 상수를 생성합니다.

  • 프로그램 기준 또는 외부 주소를 레지스터로 로드합니다. 링커에 MOV32이 포함된 ELF 섹션을 배치하는 위치에 관계없이 주소는 유효한 상태로 유지됩니다.

    Note

    이러한 방식으로 로드된 주소는 링크 타임에 고정되므로 코드는 위치 독립적이지 습니다.

MOV32는 참조되는 레이블이 Thumb 코드에 있는 경우 주소의 Thumb 비트 (비트 0) 를 설정합니다.

아키텍처

이 의사 명령어는 ARMv6T2 이상의 ARM 및 Thumb 모두에서 사용할 수 있습니다.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential