ADR

ADR

Add and Round (DALU)

Operation

Assembler Syntax

Rnd(Da + Dn) → Dn

ADR Da,Dn

ADR

Description

ADR Da,Dn

Adds one source data register (Da) to another (Dn) and rounds the sum. The result is stored in the destination data register (Dn). Rounding adjusts the LSB of the high part of the destination register according to the value of the low part of the register and then zeros the low part. The boundary between the high part and the low part changes with scaling. The two modes of the round function, Rnd(), are described on page A-359.

Status and Conditions that Affect Instruction

Register Address

Bit Name

Description

SR[2]

SM

If set, selects 32-bit arithmetic saturation mode.

SR[3]

RM

Rounding mode

SR[5:4]

S[1:0]

The scaling mode bits determine which bits in the result are used in

 

 

the Ln bit calculation, and which bits are used in rounding.

Status and Conditions Changed by Instruction

Register Address

Bit Name

Description

EMR[2]

DOVF

Set if the result cannot be represented in 40 bits, or if the result

 

 

saturates to 32 bits in arithmetic saturation mode.

Ln

L

If not in arithmetic saturation mode (SR [SM] = 0), calculates and

 

 

updates the Ln bit in the destination register. If in arithmetic

 

 

saturation mode (SR [SM] = 1), clears the Ln bit in the destination

 

 

register.

Example

adr d3,d4

Register/Memory Address

D3

L4:D4

SR

EMR

Before

$00 0034 A216

$0:$00 2000 0000

$00E0 0000

After

$0:$00 2035 0000

$0000 0000

A-38

SC140 DSP Core Reference Manual

Page 352
Image 352
Freescale Semiconductor SC140 specifications Add and Round Dalu, Adr d3,d4, RndDa + Dn → Dn, ADR Da,Dn