4.5.3. SSAT 및 USAT

포화 전 선택적 시프트를 사용하여 임의의 비트 위치로 부호 있는 포화 및 부호 없는 포화

SSAT은 부호 있는 값을 부호 있는 범위로 포화시킵니다.

USAT은 부호 있는 값을 부호 없는 범위로 포화시킵니다.

SSAT16 및 USAT16도 참조하십시오.

구문

op{cond} Rd, #sat, Rm{, shift}

인수 설명:

op

SSAT 또는 USAT입니다.

cond

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

Rd

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

sat

포화시킬 비트 위치를 지정합니다. SSAT의 경우 1에서 32 사이에서 지정하고 USAT의 경우 0에서 31 사이에서 지정합니다.

Rm

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

shift

선택적 시프트입니다. 다음 중 하나여야 합니다.

ASR #n

여기서 n은 1에서 32 사이 (ARM) 또는 1에서 31 사이 (Thumb-2) 의 숫자입니다.

LSL #n

여기서 n은 0에서 31 사이의 숫자입니다.

연산

SSAT 명령어는 지정된 시프트를 적용한 다음 부호 있는 범위 –2sat–1 ≤ x ≤2sat–1 –1로 포화시킵니다.

USAT 명령어는 지정된 시프트를 적용한 다음 부호 없는 범위 0   ≤ x ≤2sat – 1로 포화시킵니다.

조건 플래그

포화가 발생하면 이러한 명령어는 Q 플래그를 설정합니다. Q 플래그의 상태를 보려면 MRS 명령어 (MRS 참조) 를 사용하십시오.

아키텍처

이러한 ARM 명령어는 ARMv6 이상에서 사용할 수 있습니다.

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

이러한 명령어의 16비트 Thumb 버전은 없습니다.

예제

    SSAT    r7, #16, r7, LSL #4
    USATNE  r0, #7, r5
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential