SBR

SBR

Subtract And Round (DALU)

Operation

Assembler Syntax

Rnd(Dn – Da) → Dn

SBR Da,Dn

SBR

Description

SBR Da,Dn

Subtracts the first data register (Da) of a pair from the second (Dn), then rounds the result and stores the result in the second 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 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]

Scaling 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

sbr d3,d0

Register/Memory Address

SR

D3

L0:D0

EMR

Before

$00E0 0000

$00 1539 0030

$0:$00 2AE7 0080

After

$0:$00 15AE 0000

$0000 0000

A-384

SC140 DSP Core Reference Manual

Page 698
Image 698
Freescale Semiconductor SC140 specifications Subtract And Round Dalu, Sbr d3,d0, RndDn Da → Dn, SBR Da,Dn