Curs_1

15
STRUCTURA şi ARHITECTURA CALCULATOARELOR Anul II seria 2007-2008 PrecedenŃe - Urmarea acestui curs presupune promovarea următoarelor cursurilor: - Analiza şi Sinteza Dispozitivelor Numerice (Proiectarea Logică a dispozitivelor numerice); - Electronică Digitală şi Circuite de ComutaŃie (Electronică Digitală). - Programarea în limbaj de asamblare (PLA) PrezenŃa la curs este facultativă. PrezenŃa la laborator este obligatorie. AbsenŃele la laborator se recuperează în cadrul aceleaşi săptămâni. Metoda de evaluare a cunoştinŃelor: evaluarea continuă la curs şi laborator Activitatea de laborator se încheie cu o lucrare de verificare a cunoştinŃelor CondiŃii de promovare: Nota minimă la laborator NL=5 Nota minimă la examen NE=5 Nota finală se calculează cu relaŃia NF=0.5*NL+0.5*NE Pentru prezentarea la examen este necesară promovarea laboratorului. Bibliografie 1. Găitan Vasile, ARHITECTURA SISTEMELOR DE CALCUL, vol.I, Editura UniversităŃii din Suceava, 1998. 2. Nicolau Viorel, ARHITECTURA CALCULATOARELOR, Cartea Universitară, Bucureşti, 2005. 3. Baruch Zoltan Francisc, ARHITECTURA CALCULATOARELOR, Editura Todesco, Cluj-Napoca, 2000. 4. Baruch Zoltan Francisc, STRUCTURA SISTEMELOR DE CALCUL, Editura Albastră, Cluj-Napoca, 2004. 5. Baruch Zoltan Francisc, SISTEME DE INTRARE/IESIRE ale CALCULATOARELOR,Editura Albastră, Cluj-Napoca, 2000. 6. Palade Vasile, Istrate Adrian, CALCULATOARE şi SISTEME DE OPERARE, Editura FundaŃiei Universitare „Dunărea de Jos”, GalaŃi,1999. 7. Toacşe Gheorghe, INTRODUCERE IN MICROPROCESOARE, Editura StiinŃifică şi Enciclopedică, Bucureşti, 1985. 8. Dancea Ioan, MICROPROCESOARE, ARHITECTURA INTERNA,PROGRAME, APLICATII, Editura Dacia, Cluj-Napoca,1979. 9. Mureşan T., şa, MICROPROCESORUL 8080 în APLICATII, Editura Facla, Timişoara,1981. 10. Patrubani Mikloş, TOTUL DESPRE MICROPROCESORUL Z80, Editura Tehnică, Bucureşti, 1989.

Transcript of Curs_1

Page 1: Curs_1

STRUCTURA şi ARHITECTURA CALCULATOARELOR

Anul II seria 2007-2008 PrecedenŃe - Urmarea acestui curs presupune promovarea următoarelor

cursurilor:

- Analiza şi Sinteza Dispozitivelor Numerice (Proiectarea Logică a dispozitivelor numerice);

- Electronică Digitală şi Circuite de ComutaŃie (Electronică Digitală). - Programarea în limbaj de asamblare (PLA)

PrezenŃa la curs este facultativă. PrezenŃa la laborator este obligatorie. AbsenŃele la laborator se recuperează în

cadrul aceleaşi săptămâni.

Metoda de evaluare a cunoştinŃelor: evaluarea continuă la curs şi laborator Activitatea de laborator se încheie cu o lucrare de verificare a cunoştinŃelor CondiŃii de promovare: Nota minimă la laborator NL=5 Nota minimă la examen NE=5 Nota finală se calculează cu relaŃia NF=0.5*NL+0.5*NE Pentru prezentarea la examen este necesară promovarea laboratorului. Bibliografie 1. Găitan Vasile, ARHITECTURA SISTEMELOR DE CALCUL, vol.I,

Editura UniversităŃii din Suceava, 1998. 2. Nicolau Viorel, ARHITECTURA CALCULATOARELOR, Cartea

Universitară, Bucureşti, 2005. 3. Baruch Zoltan Francisc, ARHITECTURA CALCULATOARELOR, Editura

Todesco, Cluj-Napoca, 2000. 4. Baruch Zoltan Francisc, STRUCTURA SISTEMELOR DE CALCUL,

Editura Albastră, Cluj-Napoca, 2004. 5. Baruch Zoltan Francisc, SISTEME DE INTRARE/IESIRE ale

CALCULATOARELOR,Editura Albastră, Cluj-Napoca, 2000. 6. Palade Vasile, Istrate Adrian, CALCULATOARE şi SISTEME DE

OPERARE, Editura FundaŃiei Universitare „Dunărea de Jos”, GalaŃi,1999. 7. Toacşe Gheorghe, INTRODUCERE IN MICROPROCESOARE, Editura

StiinŃifică şi Enciclopedică, Bucureşti, 1985. 8. Dancea Ioan, MICROPROCESOARE, ARHITECTURA

INTERNA,PROGRAME, APLICATII, Editura Dacia, Cluj-Napoca,1979. 9. Mureşan T., şa, MICROPROCESORUL 8080 în APLICATII, Editura Facla,

Timişoara,1981.

10. Patrubani Mikloş, TOTUL DESPRE MICROPROCESORUL Z80, Editura Tehnică, Bucureşti, 1989.

Page 2: Curs_1

Cap.1. BAZELE ARITMETICE ALE CALCULATOARELOR

Spre deosebire de calculatoarele analogice care operează cu mărimi continue calculatoarele numerice (digitale) au fost concepute să opereze asupra numerelor. Numerele permit o evaluare cantitativă a lumii înconjurătoare. Prin operaŃia de numărare se asociază fiecărei mulŃimi de obiecte un număr care reprezintă astfel cantitatea de obiecte care formează respectiva mulŃime. In aproape toate civilizaŃiile umane operaŃia de numărare a presupus mai întâi divizarea mulŃimii de obiecte în grupe mai mici, punându-se astfel bazele sistemului de numeraŃie. Deoarece la începuturile civilizaŃiilor umane aprecierea cantitativă a unei mulŃimi de obiecte se realiza prin compararea acesteia cu numărul degetelor de la mâni, se utilizează în prezent sistemul de numeraŃie zecimal (cu baza zece). Există însă indicii că au existat civilizaŃii care utilizau alte baze, de exemplu baza 12.

Baza de numeraŃie ne indică deci mărimea grupei în care grupăm obiectele în scopul numărării lor. In procesul de utilizare a calculatorului întâlnim sistemele de numeraŃie cu baza 10, 8, 16, 2. Din punct de vedere matematic sistemele de numeraŃie sunt echivalente. Dacă operatorului uman îi este foarte comod să lucreze în sistemul zecimal, nu acelaşi lucru îl putem spune despre un calculator. Din motive de reprezentare a cifrelor, calculatoarele se utilizează sistemul de numeraŃie binar îmbinat cu sistemul hexazecimal sau octal.

1.1. Sisteme de numeraŃie Prin sistem de numeraŃie se înŃelege totalitatea regulilor de reprezentare

ale numerelor cu ajutorul simbolurilor denumite cifre. Sistemele de numeraŃie pot fi poziŃionale sau nepoziŃionale. Un exemplu

de sistem poziŃional este sistemul zecimal, iar un sistem nepoziŃional este cel roman. Intr-un sistem poziŃional, un număr N cu parte întreagă şi parte fracŃionară, separate prin virgulă, se poate scrie sub oricare din următoarele forme:

mmnn aaaaaaaaN −−−−−−−= )1(210121 ...,... (1.1)

m

mn

nn

n qaqaqaqaqaqaqaN −−

−−

−−

−−

−− ++++++++= ...... 2

21

10

01

12

21

1 (1.2)

sau

in

miiqaN ∑

−=

=1

(1.3)

unde: q este baza sistemului de numeraŃie (întreg pozitiv);

a - reprezintă cifre: qai ≤≤0 , mnni −−−−−= ,...,2,1,0,1,...,2,1 ;

n este numărul de cifre întregi ale numărului;

m este numărul de cifre fracŃionare ale numărului. Intr-un sistem de numeraŃie, cifra este un simbol care reprezintă o

cantitate întreagă. Numărul de simboluri permise pentru reprezentarea numerelor într-un sistem de numeraŃie se numeşte baza sau rădăcina sistemului de

numeraŃie. Cifrele a, reprezintă coeficienŃii cu care se înmulŃesc puterile iq ale

Page 3: Curs_1

bazei q în dezvoltarea polinomială a numărului pentru obŃinerea valorii sale. Cifra 1−na , din relaŃiile (1.1) şi (1.2) este cifra cea mai semnificativă

(c.m.s.) a numărului, iar cifra ma− este cifra cea mai puŃin semnificativă

(c.m.p.s.). In cazul sistemului de numeraŃie binar, pentru cifra binară se foloseşte prescurtarea de bit. Dacă m = 0, numărul N este întreg. Dacă n = 0, numărul N este fracŃionar şi subunitar. Dacă m şi n sunt întregi şi diferiŃi de zero, numărul N este mixt.

Exemple

2101210 10710210310610227,263 −− ×+×+×+×+×=

20456 212121212101,1110001 −×+×+×+×+×=

RelaŃia (1.2) explică motivul pentru care astfel de sisteme de numeraŃie sunt denumite poziŃionale. Fiecare cifră a contribuie la valoarea numărului respectiv cu o pondere dată de puterea i a bazei q.

Pentru un sistem de numeraŃie în baza q trebuie să existe q simboluri. La sistemele de numeraŃie cu baza q > 10 se introduc simboluri noi. De exemplu, pentru sistemul hexazecimal se introduc literele de la A la F. Reprezentarea primelor 16 numere în sistemul zecimal, binar şi hexazecimal este dată în tabelul 1.1.

Tabelul 1.1. Reprezentarea unor numere în sistemul zecimal, binar şi hexazecimal. 10=q 2=q 16=q

0 0 0 1 1 l 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F

1.2. Conversia bazei de numeraŃie

Pentru a deduce o metodă sistematică de conversie dintr-un sistem de numeraŃie în altul, folosim rezultatul cunoscut că, dacă N şi q sunt numere întregi, există întotdeauna un singur întreg r (care nu este negativ) mai mic decât q şi un singur întreg C, astfel încât:

Page 4: Curs_1

q

rC

q

N+= , qr <≤0 (1.4)

1.2.1. Conversia numerelor întregi

Aplicăm această regulă la conversia unui număr întreg Np din baza p în echivalentul său în baza q, adică Nq. Trebuie să determinăm valorile întregi nenegative 110 ,...,, −naaa , fiecare mai mic decât q, astfel ca:

00

11

22

1-1-n ...N qaqaqaqa n

p ++++= (1.5)

In relaŃia de mai sus cunoaştem numărul în vechea bază pN , noua

bază q şi trebuie să aflăm cifrele numărului din noua bază 110 ,..., , −naaa .

Prin împărŃire cu numărul q obŃinem:

q

aC

q

aqaqaqa

q

N nn

p 00

001

12

2-1- ... +=++++= (1.6)

unde C0 este partea întreagă, iar q

a0 este partea fracŃionară, deci 0

a este

restul împărŃirii întregi al numărului pN la q .

ImpărŃind câtul 0

C la q şi utilizând rezultatele de mai sus, obŃinem:

q

aC

q

aqaqa

q

C nn

11

102

3-1-

0 ... +=+++= (1.7)

unde 1

a reprezintă acum restul împărŃirii întregi dintre 0

C şi q .

OperaŃia se continuă până când se obŃine un cât egal cu zero. Algoritmul de conversie a numerelor întregi este deci următorul:

1. Se împarte numărul iniŃial p

N (în baza p) la noua bază q. Se obŃine

câtul 0

C şi restul 0

a .

2. Se împarte câtul 0

C la q. Se obŃine câtul 1

C şi restul 1

a .

3. Se continuă algoritmul până când se obŃine câtul 0=n

C . Resturile

obŃinute reprezintă cifrele numărului convertit, 0

a fiind cifra c.m.p.s.

Exemple

1. Conversia din zecimal în binar. Să considerăm numărul 137. Acesta trebuie împărŃit la 2 şi punem în evidenŃă resturile împărŃirii întregi dintre 137 şi 2.

Page 5: Curs_1

10

02:1

02:2

02:4

12:8

02:17

02:34

12:68

2:137

7

6

5

4

3

2

1

0

=→

=→

=→

=→

=→

=→

=→

=→

a

a

a

a

a

a

a

a

S-a obŃinut:

210 10001001137 =

2. Conversia din zecimal în octal (baza 8).

20

18:2

18:17

8:137

2

1

0

=→

=→

=→

a

a

a

deci: 810

211137 =

3. Conversia din zecimal în hexazecimal (baza 16).

80

916:8

16:137

1

0

=→

=→

a

a

deci: 1610

89137 =

1.2.2. Conversia numerelor fracŃionare

Pentru conversia numerelor fracŃionare subunitare trebuie determinaŃi coeficienŃii întregi nenegativi m-2- ,...,, aaa 1- . Considerăm numărul

fracŃionar pN din baza p care, în noua bază q , are următoarea reprezentare:

-mm-

-33-

-22-

-11- ... qaqaqaqaNp ++++= (1.8)

unde maaa −−− ..., , , 21 sunt cifrele numărului reprezentat în noua bază.

Prin înmulŃire cu baza q obŃinem:

1112

31

21 ... FaqaqaqaaqN mmp +=++++= −

+−−

−−

−−− (1.9)

unde 1−a este partea întreagă, iar 1F este partea fracŃionară a valorii obŃinute.

InmulŃind partea fracŃionară 1

F cu q obŃinem:

222

1321 ... FaqaqaaqF mm +=+++= −

+−−−−− (1.10)

Page 6: Curs_1

OperaŃia se continuă până când se obŃine o parte fracŃionară egală cu zero sau se ajunge la precizia cerută.

Algoritmul de conversie al numerelor fracŃionare este deci următorul:

1. Se înmulŃeşte numărul iniŃial Np (în baza p ) cu noua bază q. Se obŃine

partea fracŃionară 1F şi partea întreagă

1−a .

2. Se înmulŃeşte partea fracŃionară 1

F cu q. Se obŃine partea fracŃionară F2 şi

partea întreagă 2−a .

3. Se continuă algoritmul până când se obŃine partea fracŃionară 0=m

F sau

se ajunge la precizia cerută. Cifrele întregi obŃinute reprezintă cifrele numărului în baza q, 1−a fiind cifra c.m.s.

Exemple 1. Conversia din zecimal în binar.

02032,0

02016,0

12008,0

12504,0

12752,0

02876,0

2438,0

6

5

4

3

2

1

=→×

=→×

=→×

=→×

=→×

=→×

×

a

a

a

a

a

a

1024,0

02512,0

02256,0

02128,0

02064,0

11

10

9

8

7

=→

=→×

=→×

=→×

=→×

a

a

a

a

a

Deci 210 ...)10111000000,0(438,0 =

OperaŃia se continuă fără a se putea ajunge la 0=m

F . Deci, un număr

fracŃionar finit într-un sistem de numeraŃie nu poate fi reprezentat întotdeauna printr-un număr finit într-un alt sistem de numeraŃie.

2) Conversie din zecimal în octal

28048,0

08256,0

48032,0

38504,0

8438,0

4

3

2

1

=→×

=→×

=→×

=→×

×

a

a

a

a

Rezultă 810

...)3402,0(438,0 =

3) Conversie din zecimal în hexazecimal

Ca

a

a

a

a

→=→

=→×

=→×

=→×

=→×

×

12288,0

016768,0

216048,0

016128,0

716008,0

16438,0

5

4

3

2

1

Page 7: Curs_1

Numărul rezultat este 1610 ...)7020,0(438,0 C=

Pentru numere fracŃionare mai mari decât 1, partea întreagă şi cea fracŃionară se calculează separat.

Conversia prin codificare In cazul particular în care baza finală q este o putere întreagă a bazei iniŃiale

p:

rpq = , Zr ∈

conversia se poate reliza printr-un procedeu mai simplu, deoarece unei cifre în baza q îi corespund r cifre în baza p. Numărul în baza p se partiŃionează în grupe de câte r cifre şi se înlocuieşte fiecare grup de la dreapta şi de la stânga virgulei cu echivalentul său în baza q . In tabelul de mai jos sunt prezentate

codurile binare ale cifrelor sistemelor hexazecimal şi octal.

16=q Cod binar

8=q Cod binar

0 0000 0 000 l 0001 1 001 2 0010 2 010 3 0011 3 011 4 0100 4 100 5 0101 5 101 6 0110 6 110 7 0111 7 111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111

Această proprietate o au bazele 2 şi 8 şi bazele 2 şi 16. Astfel, conversia

din binar în octal se poate efectua prin înlocuirea fiecărui grup de 3 cifre binare prin echivalentul său octal, iar conversia din binar in hexazecimal se poate efectua prin înlocuirea fiecărui grup de 4 cifre binare prin echivalentul său hexazecimal. Dacă ultima grupă de cifre binare de la stânga sau de la dreapta virgulei nu este completă, se adaugă zerouri la stânga, respectiv la dreapta, până la completarea grupei.

Exemple 0111101,11100

2= 100,110

2100 = 864,34

=201,10100011 1010 0011,162 4,30100 A=

Pentru conversia din q în p se înlocuieşte fiecare cifră a numărului din

baza q cu cele r cifre ale echivalentului (codului) din baza p .

Astfel, conversia din octal în binar şi cea din hexazecimal în binar se efectuează prin înlocuirea cifrelor octale, respectiv hexazecimale, printr-un

Page 8: Curs_1

grup de 3, respectiv 4 cifre binare, care reprezintă codurile binare ale cifrelor.

Exemple

0014,123 8 = 010 011,2

100 =21,1010011

0101,53 16 =B 22 1011,10100111011,0011 =

Conversia din octal în hexazecimal şi din hexazecimal în octal se poate efectua după ce s-a efectuat conversia în binar.

Exemple 0014,123 8 = 010 0100,011 2 = 0101 0011,100

162 8,530 =

1010,716=EA 0101110,0111

2= 100 111,

827,247111 =

1.2.3. Conversia binar-zecimală

Conversia unui număr binar întreg în echivalentul său zecimal se poate efectua prin metoda înmulŃirii repetate cu 2, precizând faptul că operaŃia se efectuează în sistemul zecimal. Pentru cazul general se consideră numărul:

00

11

22

11 ... qaqaqaqaN n

nn

n ++++= −−

−− (1.11)

care mai poate fi scris sub forma

01321 )...))(...(( aqaqaqaqaN nnn +++++= −−− (1.12)

Pentru q = 2 rezultă următorul algoritm: 1. Se înmulŃeşte cifra c.m.s. a numărului binar cu 2 şi se adună la

rezultat următoarea cifră semnificativă. 2. Se înmulŃeşte rezultatul cu 2 şi se adună următoarea cifră semnificativă. 3. Se continuă până când s-a prelucrat şi cifra c.mp.s. a numărului binar. Rezultatul obŃinut este echivalentul zecimal al numărului binar dat. Exemplu

=+×→ 021101112

2

5122 =+×→ 11125 =+×→ 231211 =+×→

deci 102

2310111 =

Numerele fracŃionare (subunitare) a căror formă generală este m

mqaqaqaN −−

−−

−− +++= ...2

21

1 (1.13)

pot fi factorizare în modul următor:

++++= −+−−− ...

11...

11121

qaa

qa

qa

qN mm (1.14)

Pentru q = 2 rezultă următorul algoritm: 1. Se împarte cifra c.m.p.s. a numărului binar cu 2 şi se adună următoarea

cifră semnificativă. 2. Se împarte rezultatul cu 2 şi se adună următoarea cifră semnificativă. 3. Se continuă până când se efectuează împărŃirea care corespunde cifrei

c.m.s. a numărului fracŃionar.

Page 9: Curs_1

Exemplu 5,112/11011,0 2 =+→

75,002/5.1 =+→ 375,112/75,0 =+→ 6875,02/375,1 =→ Deci

102 6875,01011,0 =

In calculul manual, operaŃiile de conversie a numerelor binare în zecimal se realizează mai simplu prin adunarea puterilor bazei 2.

Exemple

10

01234

2 23124016212121202110111 =++++=×+×+×+×+×=

10

4321

2

6875,0

0625,0125,005,0212120211011,0

=

=+++=×+×+×+×= −−−−

In mod identic se poate proceda pentru conversia unui număr din hexazecimal în zecimal.

10

012

16 4248160256168161016181 =++=×+×+×=A

1.3. OperaŃii aritmetice cu numere fără semn 1.3.1. Adunarea Adunarea a două cifre în baza q este o operaŃie modulo q, deci cifra cu

valoarea cea mai mare va fi 1−q (de exemplu, 9 în zecimal, 1 în binar, F în

hexazecimal). Dacă rezultatul adunării a două cifre de rang i depăşeşte această valoare, va apare un transport către rangul 1+i , care se va aduna la suma cifrelor de rang 1+i . ApariŃia unui transport de la cifra c.m.s. indică o depăşire a capacităŃii de reprezentare a rezultatului.

In cazul adunării binare, cifra sumei este 1 dacă unul din termenii adunării este 1. Cifra de transport este 1 numai dacă ambii termeni ai adunării sunt 1. In tabelul 1.2 se prezintă regula de adunare a două cifre binare x şi y .

Tabelul 1.2. Adunarea a două cifre binare.

x y Transportul Suma 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0

Exemple

10

10

29

32 +

1061

10011

10110 +

101001

Page 10: Curs_1

16

16

14

326

DF

B +

16923B

1.3.2. Scăderea La scăderea a două cifre de rang i , dacă cifra descăzutului este mai mică

decât cifra scăzătorului, apare un împrumut de la rangul 1+i .

Tabelul 1.3. Scăderea a două cifre binare. x y Imprumutul DiferenŃa 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0

In cazul scăderii binare, diferenŃa este 1 dacă fie descăzutul, fie scăzătorul

este 1. Imprumutul apare numai dacă descăzutul este 0 şi scăzătorul este 1. In tabelul 1.3 se prezintă regula de scădere a două cifre binare x şi y .

Exemple

10

10

19

32 −

1013

2

2

10011

10110 −

200011

16

16

14

326

DF

B −

16411D

1.3.3. InmulŃirea InmulŃirea se efectuează de obicei prin adunarea repetată a unor produse

parŃiale. La înmulŃirea a două cifre binare, produsul este 1 numai dacă deînmulŃitul şi înmulŃitorul sunt 1. In tabelul 1.4 se prezintă regula de înmulŃire a două cifre binare x şi y .

Tabelul 1.4. InmulŃirea a două cifre binare. x y Produsul 0 0 0 0 1 0 1 0 0 1 1 1

Page 11: Curs_1

Exemplu

0110

1100×

0000 1100 1100

0000

1001000

1.3.4. ImpărŃirea ImpărŃirea a două numere nu se poate efectua dacă împărŃitorul este egal

cu zero. Fiind dat deîmpărŃitul x şi împărŃitorul y , pentru operaŃia de împărŃire

trebuie să se determine câtul Q şi restul R , astfel încât să fie satisfăcută relaŃia: RyQX +⋅=

La împărŃirea în zecimal se determină cifrele câtului prin alegerea unei cifre şi scăderea din restul parŃial (care este iniŃial o parte a deîmpărŃitului) a produsului dintre această cifră şi împărŃitor. Dacă rezultatul scăderii este un număr pozitiv mai mic decât împărŃitorul, cifra aleasă este corectă. In caz contrar, se alege o altă cifră şi operaŃia se repetă. In fiecare etapă a operaŃiei se obŃine o cifră a câtului.

In cazul împărŃirii binare, dacă se alege în mod eronat o cifră a câtului, o nouă alegere nu mai este necesară, existând numai două cifre. OperaŃia de împărŃire se va 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.

Exemplu 10010011 : 1011 = 1101 1011

1110 Rest parŃial 1011

1111 Rest parŃial 1011

100 Rest

1.4. Reprezentarea numerelor în calculator In funcŃie de soluŃia aleasă pentru a indica semnul numerelor sau poziŃia

virgulei, există mai multe moduri de reprezentare a numerelor în calculator. Numerele reprezentate în calculator pot fi fără semn sau cu semn.

Numerele fără semn sunt reprezentate în binar sau într-un cod binar zecimal. In cazul numerelor cu semn, se utilizează o cifră de semn pentru indicarea semnului. ConvenŃional, se atribuie cifra 0 pentru semnul plus şi cifra 1 pentru semnul minus. Cifra de semn este reprezentată pe poziŃia c.m.s. a numărului. Pentru reprezentarea unui număr binar cu semn de n cifre binare, sunt necesare deci 1+n poziŃii.

In general, un număr are o parte întreagă şi o parte fracŃionară, separate prin virgula binară. Virgula nu se reprezintă fizic, dar trebuie cunoscută localizarea

Page 12: Curs_1

ei. După modul de amplasare a virgulei binare, există două forme de reprezentare a numerelor:

• Forma cu virgulă fixă; • Forma cu virgulă mobilă. In forma cu virgulă fixă, virgula care separă partea întreagă de cea

fracŃionară este aşezată într-o poziŃie bine definită a cuvântului binar. Există două posibilităŃi de poziŃionare. Dacă virgula este aşezată după cifra de semn, se operează cu numere fracŃionare, subunitare. Dacă virgula este aşezată după cifra c.m.p.s., se operează cu numere întregi. In continuare se presupune ultima poziŃionare, considerând că se lucrează cu numere întregi.

In forma cu virgulă mobilă, fiecare număr este caracterizat prin două valori: • Mantisa, care indică mărimea exactă a numărului într-un anumit domeniu; • Exponentul, care indică ordinul de mărime a numărului, fiind puterea la

care se ridică baza mantisei. Exponentul indică deci implicit poziŃia virgulei binare.

1.5. Reprezentarea numerelor în virgulă fixă 1.5.1. Reprezentarea numerelor cu semn In continuare vom nota cu x , y numerele în reprezentarea binară

obişnuită, la care se ataşează semnul. Un număr cu n cifre se va scrie sub forma:

0121 ... xxxxx nn −−±=± = in

iix 2

1

0

×∑−

=

De exemplu 10110111±

Vom nota cu X şi Y numerele exprimate în forma de reprezentare în calculator. După modul de exprimare a numerelor negative, există trei forme uzuale de reprezentare a numerelor cu semn în virgulă fixă:

• în mărime şi semn (MS); • în complement faŃă de 1 (C1); • în complement faŃă de 2 (C2). Pentru toate formele de reprezentare, un număr pozitiv x se exprimă în

acelaşi fel:

xxX nin

ii

n +×=×+×= ∑−

=

202201

0

(1.15)

Numărul pozitiv cu semn se reprezintă deci adăugând cifra 0 , de semn, în faŃa numărului fără semn:

0121 ...0 xxxxX nn −−=

Considerăm pentru simplitate numere reprezentate pe 4 biŃi şi un bit de semn. De exemplu, numărul fără semn 6 se reprezintă prin:

01106 → iar numărul cu semn 6+ prin:

06 →+ 0110 Reprezentarea numerelor negative depinde de modul de reprezentare

ale acestora. 1. In formă de reprezentare denumită în mărime şi semn )(MS , un număr

Page 13: Curs_1

negativ x va avea următoarea expresie:

xxX nin

ii

n +×=×+×= ∑−

=

212211

0

(1.16)

Deci, numărul negativ se reprezintă prin adăugarea cifrei 1, de semn, în faŃa numărului fără semn:

0121 ...1 xxxxX nn −−=

De exemplu numărul 6− va fi reprezentat prin: 16 →− 0110

Acest mod de reprezentate are mai multe dezavantaje. Un prim dezavantaj este faptul că operaŃiile de adunare şi scădere necesită circuite mai electronice mai complexe. Al doilea dezavantaj constă în faptul că există două reprezentări distincte pentru cifra 0 :

00 →+ 0000 10 →− 0000

In aceste condiŃii este mai dificil să se verifice dacă o valoare este egală cu 0 .

2. In cazul reprezentării în complement faŃă de 1 )1(C , un număr negativ se

reprezintă prin complementul faŃă de 1 al numărului pozitiv cu aceeaşi valoare absolută. Complementul faŃă de 1 al unui număr binar se obŃine prin înlocuirea biŃilor de 1 cu 0, şi a celor de 0 cu 1. Un număr negativ x reprezentat în complement faŃă de 1 are expresia:

in

ii

n xX 2211

0

×+×= ∑−

=

(1.17)

unde xx i −=1 reprezintă complementul fată de 1 al cifrei ix .

Reprezentarea unui număr negativ se obŃine prin complementarea tuturor cifrelor numărului fără semn şi adăugarea cifrei de semn 1:

0

_

1

_

2

_

1

_

...1 xxxxX nn −−= De exemplu

06 →+ 0110 16 →− 1001

Si în acest caz există două reprezentari distincte pentru cifra 0 :

10

00

→−

→+ 1111

0000

3. Un număr negativ x reprezentat în complement faŃă de 2 )2(C are

următoarea expresie:

xxX nin

i

in −=×+×+×= +

=∑ 101

0

_

221221 (1.18)

Reprezentarea unui număr negativ se poate obŃine în mai multe moduri. Una dintre posibilităŃi este utilizarea relaŃiei de definiŃie (1.18).

OperaŃia de scădere se efectuează luând în considerare şi bitul de semn. De exemplu, considerând n = 4, reprezentarea numărului - 6 va fi:

Page 14: Curs_1

−100000 00110

11010

O altă posibilitate este obŃinerea complementului faŃă de 2 în două etape:

1. Se obŃine complementul faŃă de 1. 2. Se consideră rezultatul ca un întreg fără semn, la care se adună valoarea 1. De exemplu:

001106 →+ +→− 11001)1(6 C

1 -------- 11010)2(6 →− C

Practic, complementul faŃă de 2 al unui număr se poate determina pornind de la numărul pozitiv cu semn, astfel:

1. Se scriu cifrele numărului începând cu cifra c.m.p.s., neschimbate, până la primul 1 inclusiv.

2. Se complementează cifrele întâlnite în continuare. In reprezentarea C2 există o singură codificare pentru cifra 0 . In plus,

operaŃiile de adunare şi scădere se efectuează cel mai simplu în C2. Să determinăm acum gama numerelor care pot fi exprimate în cele trei

forme de reprezentare. Pentru toate cele trei forme numărul maxim pozitiv care poate fi

reprezentat pe n biŃi este

0 1211...111 −= n In MS cel mai mare număr negativ care poate fi reprezentat este

1 )12(11...111 −−= n

In C1 numărul negativ maxim este 1 00...000 care corespunde numărului pozitiv

0 1211...111 −= n Putem trage concluzia că gama numerelor care pot fi exprimate pe n

biŃi în MS şi C1 este

12)12( −≤≤−− nnx

Numărul maxim negativ care poate fi reprezentat în C2 este 1 00...000

care corespunde numărului pozitiv

1 n200...000 = Deci pentru reprezentarea în C2 această gamă este

122 −≤≤− nn x In tabelul 1.5 se prezintă reprezentarea unor numere cu 4 biŃi şi un bit de

semn în MS, C1 şi C2.

Page 15: Curs_1

Tabelul 1.5. Diferite moduri de reprezentare a unor numere cu semn. x MS C1 C2

+15 0 1111 0 1111 0 1111 +14 0 1110 0 1110 0 1110 ... ... ... ... +2 0 0010 0 0010 0 0010 +1 0 0001 0 0001 0 0001 0 0 0000

1 0000 0 0000 1 1111

0 0000

-1 1 0001 1 1110 1 1111 -2 1 0010 1 1101 1 1110 ... ... ... ... -14 1 1110 1 0001 1 0010 -15 1 1111 1 0000 1 0001 -16 - - 1 0000

1.5.2. Reguli de deplasare a numerelor cu semn De multe ori, în regiştrii procesorului, sunt necesare operaŃii de deplasare a

numerelor cu semn. Aceste deplasări trebuie efectuate astfel încât să se modifice numai valoarea numerelor, nu şi semnul. Deplasarea la stânga cu o poziŃie este echivalentă înmulŃirii cu 2, iar deplasarea la dreapta este echivalentă împărŃirii

cu 2 (înmulŃirii cu 12− ). Pentru stabilirea regulilor de deplasare, se consideră exemplele din tabelul

1.6. Tabelul 1.6. Stabilirea regulilor de deplasare a numerelor cu semn.

MS C1 C2 X + 6 0 0110 0 0110 0 0110

2×X +12 0 1100 0 1100 0 1100 12−×X + 3 0 0011 0 0011 0 0011

X - 6 1 0110 1 1001 1 1010

2×X -12 1 1100 1 0011 1 0100 12−×X - 3 1 0011 1 1100 1 1101

La deplasare participă numai cifrele numerelor. Din analizarea tabelului rezultă următoarele:

• In cazul deplasării numerelor pozitive, în poziŃiile rămase libere după deplasarea la stânga sau la dreapta se introduc cifre de 0.

• La numerele negative reprezentate în MS, în poziŃiile rămase libere după o deplasare la stânga sau la dreapta se introduc cifre de 0.

• La numerele negative reprezentate în C1, în poziŃiile rămase libere după o deplasare la stânga sau la dreapta se introduc cifre de 1.

• La numerele negative reprezentate în C2, în poziŃiile rămase libere după o deplasare la stânga se introduc cifre de 0, iar după o deplasare la dreapta se introduc cifre de 1 (deci, se repetă semnul numărului).