You are on page 1of 6

V d cho php chia (2 v d)

V d 1:
Thc hin php chia 50(8)/23(8) (s dng
s 6 bit khng du) theo cu trc phn
cng nh hnh

Sll Q, Q0=1
+

Lu gii thut i km cho cu trc phn cng

V d 1:
50(8)/23(8) = ?
Dividend = 508 = 101 0002
Divisor = 238 = 010 0112
Cu trc phn cng nh hnh v l ang lm vic trn php chia s 32
bits
C: thanh ghi divisor 64 bits
thanh ghi quotient l 32 bits
thanh ghi remainder l 64 bits
V d 1 yu cu php chia dng s 6 bits khng du, s dng cu trc
phn cng tng t nh hnh, vy cc thanh ghi trong v d cn c
khi tao vi s bit tng ng:
=> thanh ghi divisor 12 bits (gi tr khi tao 010011000000 6 bits
cao l gi tr ca divisor, 6 bits thp a 0 vo )
thanh ghi quotient l 6 bits (gi tr khi to 000000)
thanh ghi remainder l 12 bits (gi tr khi to 000000101000 - 6
bits cao a 0 vo, 6 bits thp a dividend vo)

-Sau khi khi to xong. Mi vng lp


(interation) s gm 3 bc:
B1. Ly ton b remainder tr divisor (hiu
lu ln gi tr remainder hin ang c)
B2. Kim tra hiu va tnh trn l m hay
dng (kim tra bit cao nht, nu 1 l m,
nu 0 l dng):
Nu m:
- Dich tri quotient 1 bit
- Thm 0 vo bit 0 ca quotient (tht
ra thao tc ny khng cn, v dch
tri 1 bit mc nh thm bit 0 vo
bit 0 ca n)
- Ly gi tr hin ti ca remainder
cng vi divisor, tng lu li vo
remainder
Nu dng:
- Dich tri quotient 1 bit
- Chuyn bit 0 ca quotient thnh 1
B3. Dch phi Divisor 1 bit
- S vng lp cho gii thut ny ng bng s bit
dng biu din + 1 (v d 1 yu cu dng s 6 bit,
th c 7 vng lp)
- Sau khi kt thc s vng lp, gi tr trong thanh
ghi quotient chnh l kt qu php chia, gi tr
trong remainder l phn d

Step

Action

Quotient

Divisor

Remainder

Initial Vals
(Gi tr khi to)

000 000

010 011 000000

000000 101000

V d 1:
50(8)/23(8) =
?
Dividend =
508 =
101 0002
Divisor =
238 =
010 0112

Step
0
1

Action
Initial Vals
Rem = Rem Div
Rem < 0, R + D, Q<<
Rshift Div
Rem = Rem Div
Rem < 0, R + D, Q<<
Rshift Div
Rem = Rem Div
Rem < 0, R + D, Q<<
Rshift Div
Rem = Rem Div
Rem < 0, R + D, Q<<
Rshift Div
Rem = Rem Div
Rem < 0, R + D, Q<<
Rshift Div
Rem = Rem Div
Rem < 0, R + D, Q<<, Q0 = 1
Rshift Div
Rem = Rem Div
Rem < 0, R + D, Q<<
Rshift Div

Quotient
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 000
000 001
000 001
000 001
000 010
000 010

Divisor
010 011 000 000
010 011 000 000
010 011 000 000
001 001 100 000
001 001 100 000
001 001 100 000
000 100 110 000
000 100 110 000
000 100 110 000
000 010 011 000
000 010 011 000
000 010 011 000
000 001 001 100
000 001 001 100
000 001 001 100
000 000 100 110
000 000 100 110
000 000 100 110
000 000 010 011
000 000 010 011
000 000 010 011
000 000 001 101

Thng s

Remainder
000 000 101 000
101 101 101 000
000 000 101 000
000 000 101 000
110 111 001 000
000 000 101 000
000 000 101 000
111 011 111 000
000 000 101 000
000 000 101 000
111 110 010 000
000 000 101 000
000 000 101 000
111 110 111 100
000 000 101 000
000 000 101 000
000 000 000 010
000 000 000 010
000 000 000 010
111 111 101 111
000 000 000 010
000 000 000 010

Phn d

<<: K hiu ca dch tri ( y l dch tri 1 bit)

V d cho php chia


V d 2:
Thc hin php chia 50(8)/23(8) (s
dng s 6 bit khng du) theo cu
trc phn cng nh hnh
( bi ging v d 1, nhng s
dng cu trc phn cng khc)

Trong cu trc phn cng ny,


thanh ghi Remainder cn c gi
l Remainder/Quotient
4

-Sau khi khi to xong. Mi vng lp


(interation) s gm 3 bc:
B1. Dch tri 1 bit Remainder/Quotient
B2. Ly na cao ca
Remainder/Quotient tr Divisor, gi tr
lu li vo na cao, cn na thp gi
nguyn
B3. Kim tra gi tr ca
Remainder/Quotient
Nu m:
-Ly gi tr hin ti ca na cao
Remainder/Quotient cng vi divisor,
tng lu li vo na cao ca
Remainder/Quotient, na thp gi
nguyn
Nu dng:
-Chuyn bit 0 ca Remainder/Quotient
thnh 1
- S vng lp cho gii thut ny ng bng s
bit dng biu din (v d 1 yu cu dng s 6
bit, th c 6 vng lp)
- Sau khi kt thc s vng lp, gi tr na cao
trong thanh ghi Remainder/Quotient chnh l
phn d, na thp chnh kt qu php chia

V d 2:
50(8)/23(8) = ?
Dividend = 508 =
101 0002
Divisor = 238 =
010 0112

Cu trc phn cng nh hnh v l ang lm vic trn php


chia s 32 bits
C: thanh ghi divisor 32 bits
thanh ghi remainder hay cn gi l remainder/quotient l
64 bits
V d 2 yu cu php chia dng s 6 bits khng du, s dng
cu trc phn cng tng t nh hnh, vy cc thanh ghi
trong v d cn c khi tao:
thanh ghi divisor 6 bits (gi tr khi tao 010011)
thanh ghi remainder hoc remainder/quotient l 12 bits
(gi tr khi to 000000101000 - 6 bits cao a 0 vo, 6 bits
thp a dividend vo)

Step

Action

Divisor

Remainder/Quotient

Initial Vals

010 011

000 000 101 000


5

Step

Action

Divisor

Remainder/Quotient

Initial Vals

010 011

000 000 101 000

R<<

010 011

000 001 010 000

Rem = Rem Div

010 011

101 110 010 000

Rem < 0, R + D

010 011

000 001 010 000

R<<

010 011

000 010 100 000

Rem = Rem Div

010 011

101 111 100 000

Rem < 0, R + D

010 011

000 010 100 000

R<<

010 011

000 101 000 000

Rem = Rem Div

010 011

110 010 000 000

Rem < 0, R + D

010 011

000 101 000 000

R<<

010 011

001 010 000 000

Rem = Rem Div

010 011

110 111 000 000

Rem < 0, R + D

010 011

001 010 000 000

R<<

010 011

010 100 000 000

Rem = Rem Div

010 011

000 001 000 000

Rem > 0, R0 = 1

010 011

000 001 000 001

R<<

010 011

000 010 000 010

Rem = Rem Div

010 011

101 111 000 010

Rem < 0, R + D

010 011

000 010 000 010

101110 = 000001 - 010011

Phn d

Thng

You might also like