EasyManua.ls Logo

ST STM32F4 Series User Manual

ST STM32F4 Series
262 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #104 background image
The STM32 Cortex-M4 instruction set PM0214
104/262 PM0214 Rev 9
UHSAX R0, R3, R5 ; Subtracts bottom halfword of R5 from top halfword of
; R3 and writes halved result to top halfword of R0
; Adds top halfword of R5 to bottom halfword of R3 and
; writes halved result to bottom halfword of R0.
3.5.20 UHSUB16 and UHSUB8
Unsigned Halving Subtract 16 and Unsigned Halving Subtract 8
Syntax
op{cond}{Rd,} Rn, Rm
Where:
op is any of the following:
UHSUB16: Performs two unsigned 16-bit integer additions, halves the results, and
writes the results to the destination register.
UHSUB8: Performs four unsigned 8-bit integer additions, halves the results, and writes
the results to the destination register.
cond’ is an optional condition code (see Conditional execution on page 65).
Rd’ is the destination register.
Rn’ is the first register holding the operand.
Rm’ is the second register holding the operand.
Operation
Use these instructions to add 16-bit and 8-bit data and then to halve the result before writing
the result to the destination register:
The UHSUB16 instruction:
1. Subtracts each halfword of the second operand from the corresponding halfword of the
first operand.
2. Shuffles each halfword result to the right by one bit, halving the data.
3. Writes each unsigned halfword result to corresponding halfword in destination register.
The UHSUB8 instruction:
1. Subtracts each byte of second operand from the corresponding byte of the first
operand.
2. Shuffles each byte result by one bit to the right, halving the data.
3. Writes the unsigned byte results to the corresponding byte of the destination register.
Restrictions
Do not use SP and do not use PC.
Condition flags
These instructions do not change the flags.
Examples
UHSUB16 R1, R0 ; Subtracts halfwords in R0 from corresponding R1 halfword
; and writes halved result to corresponding halfword in R1

Table of Contents

Other manuals for ST STM32F4 Series

Question and Answer IconNeed help?

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

ST STM32F4 Series Specifications

General IconGeneral
SeriesSTM32F4
CoreARM Cortex-M4
Clock SpeedUp to 180 MHz
Flash MemoryUp to 2 MB
RAMUp to 384 KB
Operating Voltage1.8 V to 3.6 V
DAC12-bit, up to 2 channels
TimersUp to 17 timers
Communication InterfacesUSB, CAN, SPI, I2C, USART, Ethernet
Operating Temperature-40°C to 85°C
PackageLQFP, WLCSP, BGA

Summary

Introduction to the STM32 Cortex-M4 Programming Manual

Cortex-M4 Processor Features and Benefits

Summarizes key advantages: outstanding performance, enhanced debug, efficient core, low power, and security.

Reference Documents for STM32 Cortex-M4

Lists datasheets and reference manuals available from STMicroelectronics website for further details.

About this document

Typographical Conventions Used

Explains conventions for highlighting important notes, cross-references, and code elements.

Abbreviations for Registers

Lists common abbreviations used in register descriptions, such as (rw), (r), and (w).

STM32 Cortex-M4 Processor and Core Peripherals Overview

Introduces the Cortex-M4 processor, its architecture, and integrated core peripherals.

The Cortex-M4 Processor

Cortex-M4 Programmers Model

Describes processor modes, privilege levels, execution states, and stack usage.

Cortex-M4 Memory Model

Explains the memory map, access behavior, and bit-banding features.

Cortex-M4 Exception Model

Covers exception states, types, handlers, priorities, and grouping mechanisms.

The STM32 Cortex-M4 Instruction Set

Instruction Set Summary and Syntax

Lists supported instructions, syntax conventions, and flexible operand usage.

Memory Access Instructions

Details instructions for loading and storing data from memory.

General Data Processing Instructions

Covers arithmetic, logical, shift, and data manipulation instructions.

Multiply and Divide Instructions

Explains signed/unsigned multiply, accumulate, divide, and saturation instructions.

Saturating Instructions

Describes instructions performing saturation arithmetic on signed/unsigned values.

Core Peripherals

Nested Vectored Interrupt Controller (NVIC)

Details the NVIC's interrupt handling, priority levels, and registers.

System Control Block (SCB) Registers

Explains SCB registers for system control, configuration, and exception reporting.

SysTick Timer (STK) Functionality

Describes the SysTick timer for system timing and RTOS tick generation.

Document Revision History

Related product manuals