Sunteți pe pagina 1din 13

Curs 4

3.2.2. Înmulţirea binară


Există numeroase metode de înmulţire binară. Cele mai importante sunt
următoarele:
• Metoda adunării repetate;
• Înmulţirea prin metoda Booth.
Fiecare din aceste metode are mai multe variante, care ţin cont de modul
reprezentare a numerelor cu semn sau urmăresc creşterea vitezei de execuţie
operaţiei.

3.2.2.1. Înmulţirea prin metoda adunării repetate (metoda directă)


Această metodă se poate aplica pentru numere reprezentate în mărime MS.
Se înmulţesc numerele iar cifra de semn este tratată separat. Dacă numerele sunt
reprezentate în C1 sau C2, numerele negative trebuie complementate pentru a obţine
reprezentarea numerelor pozitive corespunzătoare (care sunt identice cu
reprezentarea în MS). Această metodă de înmulţire este recomandată pentru
numerele reprezentate în C1, când complementarea se realizează simplu. Pentru
numerele reprezentate în C2, se preferă utilizarea altor metode care operează
direct asupra numerelor în această reprezentare.
Fie X = 12 şi Y = 6 . Reprezentând aceste numere în MS şi considerând
numai biţii de mărime, înmulţirea binară obişnuită a celor două numere se
efectuează astfel:
1100 x Deînmulţit (12)
0110 înmulţitor (6)
0000
1100 Produse parţiale
1100
0000
1001000 Produs final (26+23 = 64+8 = 72)
După cum se constată procesul de înmulţire constă din testarea succesivă
a biţilor înmulţitorului, începând cu bitul cel mai puţin semnificativ (c.m.p.s.). Dacă
bitul testat este 1, se copiază deînmulţitul, în caz contrar fiind copiate zerouri.
Se pot formula următoarele observaţii:
1. Înmulţirea implică generarea unor produse parţiale, câte unul pentru
fiecare bit al înmulţitorului. Aceste produse sunt apoi însumate pentru a se obţine
produsul final.
2. Dacă bitul testat al înmulţitorului este 0, produsul parţial corespunzător este
0. Dacă acest bit este 1, produsul parţial este egal cu deînmulţitul.
3. Pentru obţinerea produsului final, fiecare produs parţial este deplasat la
stânga cu o poziţie faţă de produsul parţial precedent.
4. Înmulţirea a două numere binare fără semn de câte n biţi are ca rezultat
un produs cu o lungime de până la 2n biţi.
Pentru implementarea înmulţirii directe se introduc următoarele modificări:
- In locul adunării tuturor produselor la final, se realizează adunarea lor, într-
un registru acumulator, pe măsură ce ele sunt obţinute. In acest mod se elimină
necesitatea de a memora toate produsele parţiale, fiind necesare mai puţine
registre.
- După obţinerea fiecărui produs parţial acesta este deplasat la dreapta cu
o poziţie.
- Testarea înmulţitorului începe cu bitul c.m.p.s.
- Pentru fiecare bit de 1 din înmulţitor, este necesară o adunare şi o
deplasare. Pentru fiecare bit de 0 din înmulţitor, când produsul parţial este 0, este
necesară numai o deplasare.
Avantajele acestei implementări sunt următoarele:
• Se utilizează un sumator de n biţi, chiar dacă rezultatul va avea 2n + 1 biţi
(ţinând cont şi de semn).
• Pentru deînmulţit se utilizează un registru de n + 1 biţi.
• Registrul acumulator are n + 1 biţi.
Deoarece rezultatul are 2n + 1 biţi, registrul acumulator ar trebui completat cu
un registru auxiliar pentru memorarea produsului. O soluţie eficientă constă în
utilizarea biţilor care nu mai sunt necesari din registrul înmulţitorului. In acest caz
registrul acumulator se plasează în continuarea registrului înmulţitorului, formând
un registru combinat care se deplasează la dreapta în fiecare pas al operaţiei.
Astfel, în final registrul acumulator păstrează biţii c.m.s. ai rezultatului, iar
registrul înmulţitorului păstrează biţii c.m.p.s.
Structura unui dispozitiv de tip paralel care implementează metoda
înmulţirii directe este prezentată în figura 3.6. Dispozitivul de înmulţire cuprinde
registrele A, B şi Q de n+1 biţi fiecare, un sumator paralel de n biţi şi un bloc de
comandă. Aceste registre sunt descrise în continuare.
X
Bn
Bn-1 Bn-2 … B1 B0

Sumator de n biţi

Qn
An An-1 An-2 … A1 A0 Qn-1 Qn-2 … Q1 Q0

Deplasare Y
Ştergere
Încărcare
Bloc de comandă
Încărcare N Test Q0

Start Stop
Fig. 3.6
Registrul A este utilizat ca acumulator pentru păstrarea produsului parţial.
La sfârşitul operaţiei de înmulţire, An va conţine semnul rezultatului. Registrul
trebuie să aibă intrări paralele pentru înscrierea informaţiei de la sumator şi să
funcţioneze ca registru de deplasare spre dreapta. Astfel la început se transferă
bitul A0 în poziţia n − 1 a registrului Q şi ulterior, pe măsură ce procesul de
înmulţire avansează, sunt transferaţi în registru Q biţii care urmează
(A1,A2,…An-1)

Start

B←X Q←Y
A←0 N←n

Qn ← Bn ⊕ Qn

Nu Da
Q0=1

A ← A+B

An ← 0, Ai ← Ai+1
Qn-1 ← A0, Qi ← Qi+1

N ← N-1

Nu
N=0

Da
An ← Qn

Stop

Fig. 3.7

Registrul B este utilizat pentru încărcarea paralelă a deînmulţitului, iar


conţinutul lui se transferă la una din intrările sumatorului. Registrul Q este utilizat
pentru încărcarea paralelă a înmulţitorului. Acesta funcţionează ca un registru de
deplasare la dreapta, cu excepţia bitului Qn care memorează la început semnul
înmulţitorului şi apoi semnul rezultatului.
Blocul de comandă al dispozitivului de înmulţire generează semnalele de
comandă în urma cărora se succed operaţiile elementare din care se compune
operaţia de înmulţire. Acest bloc conţine un numărător N, care este iniţializat cu
numărul biţilor de mărime n şi este decrementat în fiecare pas al operaţiei.
Organigrama operaţiei de înmulţire prin metoda directă este prezentată în
figura 3.7.
Operaţia începe cu iniţializarea registrelor. Deînmulţitul şi înmulţitorul se
încarcă în registrul B , respectiv Q . Registrul acumulator este iniţializat cu 0, iar
numărătorul N este iniţializat cu n, care reprezintă numărul de cifre ale
deînmulţitului şi înmulţitorului. Se formează apoi semnul rezultatului,
( Qn = Qn ⊕ Bn ) care este păstrat în bistabilul Qn al registrului Q .
Se testează bitul Q0 al înmulţitorului şi dacă acest bit este 1, se adună
deînmulţitul la produsul parţial aflat în registrul acumulator. Se deplasează apoi
registrul combinat A _ Q la dreapta cu o poziţie; pe poziţia c.m.s. a registrului A
se introduce 0. Se decrementează apoi numărătorul N. Dacă numărătorul nu a
ajuns la 0, se continuă cu pasul următor al operaţiei, testând următorul bit al
înmulţitorului şi repetând operaţiile descrise anterior. Dacă numărătorul este 0,
se transferă semnul rezultatului din bistabilul Qn pe poziţia c.m.s. a registrului
acumulator.
In continuare vom prezenta următorul exemplu: X = 9, Y = -12.
Reprezentarea acestor numere în MS este:
X = 0 1001 şi Y = 1 1100.
Se iau în consideraţie numai biţi de mărime, deci
X = 1001, Y = 1100
Determinarea semnului rezultatului se face separat. Execuţia operaţiei de
înmulţire este ilustrată în tabelul 3.2, care prezintă conţinutul registrelor
dispozitivului de înmulţire în fiecare pas al operaţiei.
Tabelul 3.2. Execuţia operaţiei de înmulţire 9 x (-12) prin metoda directă
Pas A Q B Qn Q0 N Operaţii
0 0 0000 110 0 1001 1 0 4 Iniţializare
1 0 0000 011 0 1001 1 0 3 Deplasare A_Q la dreapta
2 0 0000+ 001 1 1001 1 1 2 Deplasare A_Q la dreapta
3 1001 1001 1 1 Adunare deînmulţit
0 1001 0011
0 0100+ 100 1 1 Deplasare A_Q la dreapta
4 1001 1001 1 0 Adunare deînmulţit
0 1101 1001
0 0110 110 0 0 Deplasare A_Q la dreapta
5 1 0110 1100 1001 1 0 0 Stabilire semn rezultat

Rezultatul este: 1 0110 1100 = - 0110 11002 = -6Ch = -(6*16+12)=-108


3.2.2.2. Înmulţirea prin metoda Booth
Dacă numerele din calculator sunt reprezentate în C2, se preferă o
metodă de înmulţire care operează direct asupra numerelor în această
reprezentare. Avantajul unei asemenea metode constă în eliminarea operaţiei
de complementare a operanzilor şi a rezultatului, dacă aceştia sunt negativi,
Pentru rezolvarea acestei probleme s-au elaborat mai multe metode dintre care
amintim metoda Burks-Goldstine-von Neumann, metoda Robertson şi metoda
Booth. Dintre acestea, metoda Booth este cea mai utilizată.
Pentru a înţelege principiul metodei Booth să considerăm două numere
X şi Y , care reprezintă deînmulţitul, respectiv înmulţitorul. Pentru început să
presupunem că în cadrul înmulţitorului există un grup compact de cifre 1
înconjurat de cifre 0. Astfel dacă înmulţitorul este
Y = 00111110
Produsul celor două numere este dat de
X ⋅ Y = X ⋅ (00111110) =
= X ⋅ (0 × 2 7 + 0 × 2 6 + 1 × 25 + 1 × 2 4 + 1 × 23 + 1 × 2 2 + 1 × 21 + 0 × 2 0 ) =
= X ⋅ (25 + 2 4 + 23 + 2 2 + 21 ) = X ⋅ 62
Rezultă că pentru calcularea produsului trebuiesc efectuate 5 adunări ale
deînmulţitului.
Să observăm acum că grupul de cifre 1 poate fi scris şi sub forma
25 + 2 4 + 23 + 2 2 + 21 = 1 × 2 6 − 1 × 21 = 2 6 − 21
Justificarea aceste relaţii este prezentată în continuare:
2 5 + 2 4 + 2 3 + 2 2 + 21 = 111 110
Dacă adunăm acum la ultimul rezultat numărul 10 =1 × 21 + 0 × 2 0 = 21
Se obţine: 111 110 +10=1 000 000 = 2 6
Rezultă că: 111 110 = 1 000 000 – 10 = 2 6 − 21
Înlocuind acest rezultat în expresia obţinută anterior pentru calcularea
produsului se obţine:
X ⋅ Y = X ⋅ (2 6 − 21 ) = X ⋅ 62
Ultima relaţie ne arată că putem calcula acest produs numai printr-o
adunare şi o scădere a deînmulţitului. Această schemă poate fi extinsă la orice
număr de blocuri de 1 din cadrul înmulţitorului, inclusiv la cazul când unele
blocuri conţin o singură cifră 1. Astfel dacă înmulţitorul este
Y = 00111010
produsul celor două numere poare fi scris ca
X ⋅ Y = X ⋅ (25 + 2 4 + 23 + 21 ) = X ⋅ 58
Sau efectuând înlocuirile:
2 5 + 2 4 + 2 3 = 2 6 − 2 3 şi 21 = 2 2 − 21 se obţine:
X ⋅ Y = X ⋅ (26 − 23 + 22 − 21 ) = X ⋅ 58
Algoritmul lui Booth utilizează această schemă, efectuând o adunare a
deînmulţitului atunci când întâlneşte prima cifră a unui bloc de 1 (01) şi o
scădere a acestuia atunci când întâlneşte sfârşitul acestui bloc (10) . Acest
algoritm poate fi aplicat şi în cazul unui înmulţitor negativ.
Ţinând seama de observaţia de mai sus, rezultă următorul algoritm al metodei
Booth: la fiecare pas al operaţiei se testează doi biţi alăturaţi ai înmulţitorului, y i (bitul
curent) şi y i −1 (bitul testat în pasul precedent, numit şi bit de referinţă). Testarea se
efectuează începând cu bitul c.m.p.s. al înmulţitorului. In funcţie de valoarea biţilor
testaţi y i y i −1 , se efectuează operaţiile indicate în tabelul 3.3.

Tabelul 3.3.
yi yi −1 Operaţii
00 Deplasare produs parţial la dreapta
01 Adunare deînmulţit, deplasare produs parţial la dreapta
10 Scădere deînmulţit, deplasare produs parţial la dreapta
11 Deplasare produs parţial la dreapta

Structura unui dispozitiv de înmulţire prin metoda Booth este prezentată în


figura 3.8.
X

Bn Bn-1 … B1 B0

Sumator / Scăzător
de n+1 biţi

An An-1 An-2 … A1 A0 Qn Qn-1 … Q1 Q0 Q-1

Deplasare Y
Scădere/Adunare Ştergere
Încărcare
Bloc de comandă
Încărcare N Test Q0Q-1
Ştergere

Start Stop

Fig. 3.8

Dispozitivul de înmulţire care implementează metoda Booth conţine un


registru combinat A _ Q , format din registrul acumulator A şi registrul Q , de
câte n + 1 poziţii fiecare. In registrul Q se introduce înmulţitorul iar în A se va
introduce, în timpul desfăşurării operaţiei de înmulţire, produsul parţial. Toate
poziţiile înmulţitorului inclusiv cea de semn, participă la deplasare. Registrul B ,
care păstrează deînmulţitul, are de asemenea n + 1 poziţii. Aceste registre
trebuie să aibă posibilităţi similare cu cele utilizate la metoda de înmulţire
directă. Mai este necesar un bistabil Q−1 , care păstrează bitul de referinţă.
Sumatorul utilizat trebuie să aibă n + 1 poziţii, deoarece se operează cu toate
cifrele inclusiv cea de semn.
La fiecare pas al operaţiei, blocul de comandă testează biţii succesivi
notaţi cu Q0 , Q−1 . In funcţie de valoarea acestor biţi, se efectuează operaţiile
necesare precizate în tabelul 3.4.

Start

B ← X Q ← Y Q-1=0
A ← 0 N ← n+1

Nu Da
Q-1=1

Nu Da Nu Da
Q0=1 Q0=1
00 10 01 11

A ← A-B A ← A+B

An ← An Ai ← Ai+1 Qn = A0 Qi ← Qi+1 Q-1=Q0

N ← N-1

Nu
N=0

Da

Stop

Fig.3.9
Observaţii:
1. Iniţial, bistabilul Q−1 este resetat, pentru ca bitul de referinţă pentru cifra
Q0 a înmulţitorului să fie zero.
2. La deplasare se tine cont de regula de deplasare pentru numerele cu
semn reprezentate în C2 (Tabelul 1.7). Bitul de semn de pe poziţia An , este
deplasat în An −1 , dar rămâne şi în An .
3. Se compară toţi biţii înmulţitorului, inclusiv bitul de semn.
4. Rezultatul se formează în registrul A _ Q de 2n+2 poziţii, bitul de semn
repetându-se pe primele două poziţii (rezultatul propriu-zis are 2n+1 biţi).
Organigrama operaţiei de înmulţire prin metoda Booth este prezentată în
figura 3.9.
In etapa de iniţializare, se încarcă deînmulţitul şi înmulţitorul în registrul B ,
respectiv Q , bistabilul Q−1 şi registrul acumulator sunt iniţializate cu 0 , iar
numărătorul N este iniţializat cu n + 1 .
In continuare se testează bitul de referinţă Q−1 şi bitul Q0 al înmulţitorului.
Dacă Q0Q−1 = 01, se adună deînmulţitul din registrul B la produsul parţial din
registrul A . Dacă Q0Q−1 = 10 , se scade deînmulţitul din produsul parţial. Pentru
celelalte două combinaţii ale biţilor testaţi, în această etapă nu se efectuează nici o
operaţie. La pasul următor se deplasează la dreapta registrul combinat A _ Q , astfel
încât în poziţia bitului de semn An să rămână aceeaşi valoare (păstrarea bitului de
semn este indicată în organigramă prin transferul An ← An ). Se decrementează
numărătorul N şi dacă acesta nu a ajuns la zero, se continuă operaţia cu testarea
biţilor Q0Q−1 . Dacă numărătorul N a ajuns la zero, operaţia se termină.
Exemplul
Considerăm X = 13 , Y = −10 . Exprimarea binară a acestor numere în C2
este următoarea:
X = 0 1101
Y = 1 0110
Scăderea deînmulţitului din conţinutul registrului acumulator A se efectuează
prin adunarea complementului faţă de 2 al acestuia X’.
X’ = - X = 1 0011
In tabelul 3.4 este prezentat conţinutul registrelor dispozitivului de
înmulţire la fiecare pas al operaţiei.

Tabelul 3.4. Execuţia operaţiei de înmulţire 13 x (-10) prin metoda Booth.


Pas A Q Q-1 B Q0Q-1 N Operaţii
0 0 0000 1 0110 0 0 1101 00 5 Iniţializare
1 0 0000+ 0 1011 0 0 1101 10 4 Deplasare A_Q la dreapta
2 1 0011 0 1101 Scădere deînmulţit
1 0011 0 1011 0
1 1001 1 0101 1 11 3 Deplasare A_Q la dreapta
3 1 1100+ 1 1010 1 0 1101 01 2 Deplasare A_Q la dreapta
4 0 1101 0 1101 Adunare deînmulţit
0 1001 1 1010 1
0 0100+ 1 1101 0 10 1 Deplasare A_Q la dreapta
5 1 0011 0 1101 Scădere deînmulţit
1 0111 1 1101 0
1 1011 1 1110 1 01 0 Deplasare A_Q la dreapta

Rezultatul este: 1 0111 1110 = - 1000 00102 = - 82 h = - (8*16+2)= -130.


Observaţie. La deplasarea la dreapta a conţinutului registrelor A _ Q se ţine
seama de deplasare a numerelor reprezentate în C2 care cere ca pe poziţia rămasă
liberă să se repete bitul de semn al numărului. Astfel la paşii 2, 3 şi 5 pe locul rămas
liber s-a plasat cifra 1, iar la paşii 1 şi 4 cifra 0.

3.2.3. Împărţirea binară

3.2.3.1. Principiul împărţirii binare


Fiind dat deîmpărţitul X şi împărţitorul Y , de câte n cifre de mărime,
împărţirea constă în determinarea câtului Q şi a restului R , astfel încât să fie
satisfăcută relaţia:
X = Q ⋅Y + R (3.5)
Operaţia de împărţire se reduce la o serie de scăderi ale împărţitorului din
restul parţial, care se efectuează numai dacă restul parţial este mai mare decât
împărţitorul, caz în care cifra câtului este 1; în caz contrar, cifra corespunzătoare a
câtului este 0.
Să considerăm următoarea operaţie 147:11.
In binar avem
147 → 1001 0011
11 → 1011
10010011:1011= 00001101 Cât 13
1011
1110 Rest parţial
1011
1111 Rest parţial
1011
100 Rest 4
Câtul este 13, iar restul este 4. Pentru împărţire se examinează biţii
deîmpărţitului, de la stânga la dreapta, până când setul biţilor examinaţi reprezintă
un număr mai mare sau egal cu împărţitorul. De exemplu, setul biţilor examinaţi
este 1, 10, 100, 1001, 10010. Atât timp cât setul biţilor examinaţi este mai mic
decât împărţitorul, se obţin cifre de 0 pentru cât. Atunci când acest set este mai
mare sau egal cu împărţitorul, se obţine o cifră de 1 pentru cât. In continuare
împărţitorul este scăzut din partea corespunzătoare a deîmpărţitului, obţinându-se
un rest parţial. La fiecare pas al operaţiei se adaugă câte un bit din deîmpărţit la
restul parţial, până când se obţine un număr mai mare sau egal cu împărţitorul.
Se scade apoi împărţitorul din restul parţial, obţinându-se un nou rest parţial.
Operaţia continuă până când se examinează toţi biţii deîmpărţitului.
In cazul în care împărţitorul este zero, operaţia de împărţire trebuie oprită,
ceea ce impune testarea împărţitorului înaintea operaţiei. Se poate testa şi
deîmpărţitul înaintea operaţiei şi dacă acesta este zero, operaţia se poate termina,
rezultatul fiind zero.

3.2.3.2. Metode de împărţire binară


Există trei metode principale de împărţire:
• Metoda comparaţiei;
• Metoda refacerii restului parţial;
• Metoda fără refacerea restului parţial.
In cazul metodei comparaţiei, dispozitivul de împărţire conţine un circuit
comparator, utilizat pentru compararea restului parţial cu împărţitorul. Circuitele
de comparare fiind destul de complexe, această metodă nu se utilizează în mod
obişnuit.
Metoda aleasă depinde de forma de reprezentare a numerelor în calculator.
Metoda comparaţiei şi cea a refacerii restului parţial se pot aplica numai în cazul
reprezentării numerelor în MS. Dacă numerele sunt reprezentate în altă formă,
este necesară conversia formei de reprezentare în MS înaintea aplicării metodei şi
conversia rezultatului operaţiei. Metoda fără refacerea restului parţial se poate
aplica oricărei forme de reprezentare, fiind necesare însă unele corecţii ale
rezultatului.

3.2.3.3. Metoda refacerii restului parţial


In cazul metodei refacerii restului parţial, în fiecare etapă a operaţiei se
efectuează o scădere a împărţitorului din restul parţial. Dacă rezultatul scăderii
este un număr negativ, deci restul parţial este mai mic decât împărţitorul, se reface
restul parţial la valoarea anterioară, prin adunarea împărţitorului la restul parţial.
Fiecare etapă a operaţiei de împărţire începe cu o deplasare a restului
parţial la stânga cu o poziţie. Se efectuează apoi scăderea împărţitorului din
restul parţial, obţinându-se noul rest parţial. Dacă se obţine un număr pozitiv,
cifra corespunzătoare a câtului este 1. Dacă se obţine un număr negativ, cifra
corespunzătoare a câtului este 0 şi restul parţial este refăcut prin adunarea
împărţitorului. Pentru obţinerea unui cât cu n cifre de mărime, aceste operaţii se
repetă de n ori. Procesul de împărţire se opreşte dacă restul parţial devine zero
sau mai mic decât împărţitorul.
Pentru implementarea algoritmului prezentat se utilizează un registru
combinat format din registrul acumulator şi registrul deîmpărţitului. Iniţial registrul
acumulator este 0.
Y
Bn
Bn-1 Bn-2 … B1 B0

Sumator / Scăzător
de n biţi

Qn
An An-1 An-2 … A1 A0 Qn-1 Qn-2 … Q1 Q0

X
Ştergere
Bloc de comandă
Adunare Deplasare
Scădere N
Încărcare
Încărcare
Start Stop
Fig. 3.10

Structura dispozitivului de împărţire care utilizează metoda refacerii restului


parţial este prezentată în figura 3.10.
Regiştri A , B şi Q au câte n + 1 poziţii. Regiştri A şi Q se pot deplasa la
stânga, astfel încât bitul Qn −1 va trece în A0 . Bitul Qn nu participă la deplasare.
Sumatorul este de n biţi. Conţinutul registrului B poate fi adunat sau scăzut din
conţinutul registrului acumulator A .
Organigrama operaţiei de împărţire prin metoda refacerii restului parţial este
prezentată în figura 3.11.
Deîmpărţitul X se încarcă în registrul Q . Semnul deîmpărţitului se
păstrează în poziţia Qn a registrului Q . Împărţitorul Y se încarcă în registrul B .
Numărătorul N se iniţializează cu numărul cifrelor de mărime n. In fiecare etapă a
operaţiei, se deplasează registrul combinat A _ Q la stânga cu o poziţie, iar apoi se
efectuează o scădere a împărţitorului (registrul B ) din restul parţial (registrul A ).
Dacă rezultă un număr pozitiv în acumulator ( An = 0 ), cifra câtului este 1, care se
introduce în poziţia Q0 a registrului Q . Dacă rezultă un număr negativ în
acumulator ( An = 1 ), cifra câtului care se introduce în poziţia Q0 este 0. Valoarea
cifrei câtului care se obţine în această etapă este deci:
Q0 = A n
Dacă în urma scăderii a rezultat un număr negativ, se reface restul parţial
prin adunarea registrului B la acumulator. Se decrementează numărătorul N şi
dacă acesta nu este zero, operaţia continuă cu o nouă etapă. Dacă N este zero,
operaţia este terminată, restul aflându-se în registrul A , iar câtul în registrul Q . In
final se stabileşte semnul restului şi al câtului. Semnul restului este semnul
deîmpărţitului: An = Qn . Semnul câtului se obţine prin operaţia SAU EXCLUSIV
între semnele celor doi operanzi:
Qn = Qn ⊕ Bn

Start

A_Q ← X B ← Y
N←n

A0 ← Qn-1 Ai ← Ai-1 Qi ← Qi-1

A ← A-B


Qo ← A n

Nu Da
An = 1

A←A + B

N ← N-1

Nu
N=0
Da

An ← Qn Qn ← Qn ⊕ Bn

Stop

Fig. 3.11

In organigramă nu sunt arătate testele care trebuie efectuate după etapa de


iniţializare. Astfel, trebuie să se testeze dacă împărţitorul este zero; în caz afirmativ,
operaţia se opreşte şi se indică o eroare de împărţire cu zero.
Exemplu
Considerăm numerele X = 13 şi Y = 5 . Reprezentarea în MS a acestor
numere este următoarea:
X = 0 1101
Y = 0 0101
Complementul faţă de 2 al împărţitorului este:
Y’ = -Y = 1 1011
Scăderea se efectuează în C2 deoarece în această reprezentare operaţia
se face mai simplu.
Cifrele de semn fiind tratate separat, în registrele B şi Q se încarcă numai
cifrele de mărime. La operaţia de adunare sau scădere a împărţitorului din
acumulator participă însă toate cifrele. Execuţia operaţiei este prezentată în tabelul
3.7.

Tabelul 3.7 . Execuţia operaţiei de împărţire 13:5 prin metoda refacerii restului parţial.
Pas A Q B Q0 Qn N Operaţii
0 0 0000 1101 0101 0 0 4 Iniţializare
1 0 0001 + 1010 Deplasare A_Q la stânga
11011 Scădere împărţitor
1 1100 +
0 0101 Adunare împărţitor
0 0001 101 0 0 0 0 3
2 0 0011 + 01 0 0 Deplasare A_Q la stânga
1 1011 Scădere împărţitor
1 1110 +
0 0101 Adunare împărţitor
0 0011 01 00 0101 0 0 2
3 0 0110 + 100 0 Deplasare A_Q la stânga
1 1011 Scădere împărţitor
0 0001 1001 0101 1 0 1
4 0 0011 + 001 0 Deplasare A_Q la stânga
1 1011 Scădere împărţitor
1 1110 +
0 0101 Adunare împărţitor
0 0011 0010 0101 0 0 0

Câtul obţinut este 0 0010=2, iar restul este 0011=3.

S-ar putea să vă placă și