| |||

Home > The Cortex-M7 Instruction Set > Packing and unpacking instructions > SXT and UXT |

Sign extend and Zero extend.

{`op`

}`cond`

,`Rd`

{, ROR #`Rn`

} ;`n`

`SXTB`

;`SXTH`

;`UXTB`

;`UXTH`

{`op`

} {`cond`

},`Rd`

{, ROR #`Rn`

} ;`n`

`SXTB16`

;`UXTB16`

Where:

`op`

Is one of:

`SXTB`

Sign extends an 8‑bit value to a 32‑bit value.

`SXTH`

Sign extends a 16‑bit value to a 32‑bit value.

`SXTB16`

Sign extends two 8-bit values to two 16-bit values.

`UXTB`

Zero extends an 8‑bit value to a 32‑bit value.

`UXTH`

Zero extends a 16‑bit value to a 32‑bit value.

`UXTB16`

Zero extends two 8-bit values to two 16-bit values.

`cond`

Is an optional condition code. See

*Conditional execution*.`Rd`

Is the destination register. If

is omitted, the destination register is`Rd`

.`Rn`

`Rn`

Is the register holding the value to extend.

`ROR`

`#n`

Is one of:

`ROR #8`

Value from

is rotated right 8 bits.`Rm`

`ROR #16`

Value from

is rotated right 16 bits.`Rm`

`ROR #24`

Value from

is rotated right 24 bits.`Rm`

If

`ROR #`

is omitted, no rotation is performed.`n`

These instructions do the following:

Rotate the value from

right by 0, 8, 16 or 24 bits.`Rm`

Extract bits from the resulting value:

`SXTB`

extracts bits[7:0] and sign extends to 32 bits.`UXTB`

extracts bits[7:0] and zero extends to 32 bits.`SXTH`

extracts bits[15:0] and sign extends to 32 bits.`UXTH`

extracts bits[15:0] and zero extends to 32 bits.`SXTB16`

extracts bits[7:0] and sign extends to 16 bits, and extracts bits [23:16] and sign extends to 16 bits.`UXTB16`

extracts bits[7:0] and zero extends to 16 bits, and extracts bits [23:16] and zero extends to 16 bits.