beautypg.com

Motorola DSP96002 User Manual

Page 577

background image

B-58

DSP96002 USER’S MANUAL

MOTOROLA

Signed 32 Bit Integer

Program

ICycles

Division of d0 = d5/d2

Words

eor d2,d5 d5.l,d0.l ;determine final sign 1 1

abs d2 d0.l,d3.l ;make divisor positive 1 1

abs d0 ;make dividend positive 1 1

do #32,dloop ;32 quotient bits 2 3

rol d0 ;dividend bit out, q bit in 1 1

rol d1 ;put in temp 1 1

cmp d2,d1 ;check for q bit 1 1

sub d2,d1 ifcc ;update if less 1 1

dloop

rol d0 ;last q bit 1 1

not d0 ;complement q bits 1 1

tst d5 ;check sign of result 1 1

neg d0 iflt ;negate if needed 1 1

tst d3

neg dl iflt

--- ---

Totals: 13 138

The final remainder is destroyed in the generation of the quotient. This program may calculate only the

number of quotient bits required and has variable execution time.

Signed 32 Bit Integer
Division of d0 = d0/d1, d0 >= d1

abs

d1

d1.l,d2.l

eor

d0,d2

abs

d0

d2.l,d1.m

cmp

d1,d0

d0.l,d2.m

eor

d0,d0

iflo

jlo

divdone

bfind

d0,d0

d3.l,d8.l

bfind

d1,d2

d0.h,d0.l

movei

#32,d3

move

d2.h,d2.l

sub

d0,d2

d2.m,d0.l

inc

d2

d2.l,d2.h

sub

d2,d3

lsl

d2,d1

d3.l,d2.h

do

d2.l,divloop_fast

cmp

d1,d0

sub

d1,d0

ifhs

rol

d0