Ssat And Usat - ST STM32H7 Series Programming Manual

Hide thumbs Also See for STM32H7 Series:
Table of Contents

Advertisement

The STM32 Cortex-M4 instruction set
3.7.1

SSAT and USAT

Signed Saturate and Unsigned Saturate to any bit position, with optional shift before
saturating.
Syntax
op{cond} Rd, #n, Rm {, shift #s}
Where:
op' is one of:
SSAT: Saturates a signed value to a signed range.
USAT: Saturates a signed value to an unsigned range.
'cond' is an optional condition code (see
'Rd' is the destination register.
'n' specifies the bit position to saturate to:
n ranges from 1 to 32 for SSAT
n ranges from 0 to 31 for USAT.
'Rm' is the register containing the value to saturate.
'shift #s' is an optional shift applied to Rm before saturating. It must be one of the
following:
ASR #s: where s is in the range 1 to 31.
LSL #s: where s is in the range 0 to 31.
Operation
These instructions saturate to a signed or unsigned n-bit value.
The SSAT instruction applies the specified shift, then saturates to the signed range -2
n–1
≤ 2
-1.
The USAT instruction applies the specified shift, then saturates to the unsigned range 0 ≤ x ≤
n-1
2
.
Restrictions
Do not use SP and do not use PC.
Condition flags
These instructions do not affect the condition code flags.
If saturation occurs, these instructions set the Q flag to 1.
Examples
SSAT
USATNE
126/262
R7, #16, R7, LSL #4
R0, #7, R5; Conditionally saturate value in R5 as an
Conditional execution on page
; Logical shift left value in R7 by 4, then
; saturate it as a signed 16-bit value and
; write it back to R7
; unsigned 7 bit value and write it to R0.
PM0214 Rev 9
PM0214
65).
n–1
≤ x

Hide quick links:

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the STM32H7 Series and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Table of Contents

Save PDF