4.3.11. REV, REV16, REVSH 및 RBIT

워드 또는 하프워드 내에서 바이트 또는 비트 반전

구문

op{cond} Rd, Rn

인수 설명:

op

다음 중 하나입니다.

REV

워드에서 바이트 순서를 반전시킵니다.

REV16

각 하프워드에서 개별 바이트 순서를 반전시킵니다.

REVSH

하위 하프워드에서 바이트 순서를 반전시키거나 32비트로 부호 확장합니다.

RBIT

32비트 워드에서 비트 순서를 반전시킵니다.

cond

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

Rd

대상 레지스터입니다. Rd 는 r15이면 안 됩니다.

Rn

피연산자가 들어 있는 레지스터입니다. Rn은 r15이면 안 됩니다.

사용법

이러한 명령어를 사용하여 엔디안을 변경할 수 있습니다.

REV

32비트 빅엔디안 데이터를 리틀엔디안 데이터로 또는 32비트 리틀엔디안 데이터를 빅엔디안 데이터로 변환합니다.

REV16

16비트 빅엔디안 데이터를 리틀엔디안 데이터로 또는 16비트 리틀엔디안 데이터를 빅엔디안 데이터로 변환합니다.

REVSH

다음과 같이 변환합니다.

  • 16비트 부호 있는 빅엔디안 데이터를 32비트 부호 있는 리틀엔디안 데이터로 변환합니다.

  • 16비트 부호 있는 리틀엔디안 데이터를 32비트 부호 있는 빅엔디안 데이터로 변환합니다.

조건 플래그

이러한 명령어는 플래그를 변경하지 않습니다.

16비트 명령어

이러한 명령어의 다음 형식은 Thumb-2 이전 Thumb 코드에서 사용할 수 있으며, Thumb-2 코드에서 사용될 경우 16비트 명령어입니다.

REV Rd, Rm

RdRm은 모두 Lo 레지스터여야 합니다.

REV16 Rd, Rm

RdRm은 모두 Lo 레지스터여야 합니다.

REVSH Rd, Rm

RdRm은 모두 Lo 레지스터여야 합니다.

아키텍처

RBIT를 제외하고 이러한 ARM 명령어는 ARMv6 이상에서 사용할 수 있습니다.

ARM RBIT 명령어는 ARMv6T2 이상에서 사용할 수 있습니다.

이러한 32비트 Thumb 명령어는 ARMv6T2 이상에서 사용할 수 있습니다.

이러한 16비트 Thumb 명령어는 ARMv6 이상의 모든 T 변형에서 사용할 수 있습니다.

예제

    REV     r3, r7
    REV16   r0, r0
    REVSH   r0, r5       ; Reverse Signed Halfword
    REVHS   r3, r7       ; Reverse with Higher or Same condition
    RBIT    r7, r8
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential