| |||
| Home > ARM 및 Thumb 명령어 > 포화 명령어 > SSAT 및 USAT | |||
포화 전 선택적 시프트를 사용하여 임의의 비트 위치로 부호 있는 포화 및 부호 없는 포화
SSAT는 부호 있는 값을 부호 있는 범위로 포화시킵니다.
USAT는 부호 있는 값을 부호 없는 범위로 포화시킵니다.
SSAT16 및 USAT16도 참조하십시오.
op{cond}Rd, #sat,Rm{,shift}
인수 설명:
opSSAT 또는 USAT입니다.
cond선택적 조건 코드입니다(조건부 실행 참조).
Rd대상 레지스터입니다. 는
r15이면 안 됩니다.Rd
sat포화시킬 비트 위치를 지정합니다. SSAT의 경우 1에서 32
사이에서 지정하고 USAT의 경우 0에서 31 사이에서 지정합니다.
Rm피연산자가 들어 있는 레지스터입니다. 은
r15이면 안 됩니다.Rm
shift선택적 시프트입니다. 다음 중 하나여야 합니다.
ASR #n여기서 은
1에서 32 사이(ARM) 또는 1에서 31 사이(Thumb-2)의 숫자입니다.n
LSL #n여기서 은
0에서 31 사이의 숫자입니다.n
SSAT 명령어는 지정된 시프트를 적용한 다음 부호 있는 범위 -2sat-1 ≤ x ≤ 2sat-1 -1로 포화시킵니다.
USAT 명령어는 지정된 시프트를 적용한 다음 부호 없는 범위 0 ≤ x ≤ 2sat -
1로 포화시킵니다.
포화가 발생하면 이러한 명령어는 Q 플래그를 설정합니다. Q 플래그의 상태를 보려면 MRS 명령어(MRS 참조)를 사용하십시오.
이러한 ARM 명령어는 ARMv6 이상에서 사용할 수 있습니다.
이러한 32비트 Thumb 명령어는 ARMv6T2와 ARMv7에서 사용할 수 있습니다.
이러한 명령어의 16비트 Thumb 버전은 없습니다.