4.6.3. SSAT16 및 USAT16

병렬 하프워드 포화 명령어

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

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

구문

op{cond} Rd, #sat, Rn

인수 설명:

op

다음 중 하나입니다.

SSAT16

부호 있는 포화

USAT16

부호 없는 포화

cond

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

Rd

대상 레지스터입니다.

sat

포화시킬 비트 위치를 지정합니다. SSAT16의 경우 1에서 16 사이에서 지정하고 USAT16의 경우 0에서 15 사이에서 지정합니다.

Rn

피연산자가 들어 있는 레지스터입니다.

Rd 또는 Rn에 r15를 사용하면 안 됩니다.

연산

임의의 비트 위치로 하프워드 부호 있는 포화 및 부호 없는 포화

SSAT16 명령어는 각 부호 있는 하프워드를 부호 있는 범위 –2sat–1  ≤ x ≤sat–1 –1로 포화시킵니다.

USAT16 명령어는 각 부호 있는 하프워드를 부호 없는 범위 0  ≤ x ≤sat –1로 포화시킵니다.

조건 플래그

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

아키텍처

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

이러한 32비트 Thumb 명령어는 ARMv7-M 프로필을 제외하고 ARMv6T2 이상에서 사용할 수 있습니다.

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

예제

    SSAT16  r7, #12, r7
    USAT16  r0, #7, r5

올바르지 않은 예제

    SSAT16  r1, #16, r2, LSL #4 ; shifts not permitted with halfword saturations
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential