+ All Categories
Home > Documents > ARHITECTURA CALCULATOARELOR -...

ARHITECTURA CALCULATOARELOR -...

Date post: 23-Feb-2018
Category:
Upload: truongkhanh
View: 310 times
Download: 14 times
Share this document with a friend
60
Sever SPÂNULESCU Floarea BAICU Eugen CORNEL ARHITECTURA CALCULATOARELOR INDRUMAR de LABORATOR
Transcript
Page 1: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

Sever SPÂNULESCU

Floarea BAICU Eugen CORNEL

ARHITECTURA

CALCULATOARELOR

INDRUMAR de LABORATOR

Page 2: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

2

Page 3: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

3

CUPRINS

Laborator 1. PREZENTAREA CALCULATORULUI ŞI PRINCIPIUL DE FUNCŢIONARE ........... 5

Laborator 2. REPREZENTAREA NUMERELOR ÎN VIRGULĂ FIXĂ ŞI ÎN VIRGULĂ MOBILĂ.

OPERAŢII ARITMETICE ..................................................................................................................... 9

Laborator 3 şi 4. PORTI LOGICE FUNDAMENTALE REALIZATE IN CIRCUIT MAKER.

COMBINATII DE PORTI LOGICE .................................................................................................... 17

Laborator 5. DECODIFICATOR, DEMULTIPLEXOR CODIFICATOR, MULTIPLEXOR. ........... 23

Laborator 6. STUDIUL CIRCUITELOR BASCULANTE BISTABILE ............................................. 27

Laborator 7. TIPURI DE CIRCUITE BASCULANTE BISTABILE .................................................. 31

Laborator 8. ARHITECTURA SETULUI DE INSTRUCTIUNI ......................................................... 33

Laborator 9. PRELUCRAREA INFORMAŢIEI ÎNTR-O UNITATE ARITMETICO-LOGICĂ ...... 41

Laborator 10. FUNCŢIONAREA UNITĂŢILOR DE MEMORARE ÎNTR-UN CALCULATOR

TRANSFERURI DE DATE ŞI OPERAŢII ARITMETICE CU MEMORIA ...................................... 47

Laborator 11. TRANSFERURI PE 1 OCTET ŞI PE 2 OCTEŢI ......................................................... 51

Laborator 12. MODURI DE ADRESARE ........................................................................................... 53

Bibliografie ..................................................................................................................................... 59

Page 4: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

4

Page 5: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

5

Laborator 1. PREZENTAREA CALCULATORULUI

ŞI PRINCIPIUL DE FUNCŢIONARE

Orice calculator electronic actual este format din subsisteme inconectate între ele, care,

oricât de evoluate ar fi, corespund modelului original Von Neumann. Acest model a rezultat

din faptul că un calculator trebuie să conţină 5 componente care să corespundă celor 5 principii

prezentate mai anterior:

1. un mediu de intrare care să asigure preluarea datelor şi instrucţiunilor;

2. un mediu de memorare în care să fie stocate datele şi programul aferent din care să se

citească operanzi şi instrucţiuni şi în care să se poată introduce, în ordinea dorită, rezultatele;

3. un mediu de prelucrare care să efectueze operaţii aritmetice şi logice asupra

operanzilor citiţi în memorie;

4. un mediu de control capabil să interpreteze instrucţiunile extrase din memorie şi să

controleze procesul de desfăşurare a operaţiilor, în funcţie de rezultatele obţinute pe parcurs

şi

5. un mediu de ieşire care să permită extragerea rezultatelor.

Astfel Von Neumann a gândit o structură în 5 unităţi funcţionale corespunzătoare celor 5

medii:

1. Unitatea de Intrare IU (Input Unit);

2. Unitatea de Memorie MU (Memory Unit);

3. Unitatea Aritmetico-Logică ALU (Aritmetic and Logic Unit);

4. Unitatea de control UC (Control Unit) şi

5. Unitatea de ieşire OU (Output Unit).

Această structură se mai numeşte şi structura în 5 unităţia calculatorului. Unităţile sunt

interconectate între ele conform schemei simple reprezentată în figura 1.8, preluată din

https://en.wikipedia.org/wiki/von Neumannarchitecture [37].

Figura 1.1. Structura în 5 unităţi a calculatorului.

În figura 1.2 este prezentată mai detaliat această structură, cu modul de interconectare al

celor 5 unităţi şi sunt exemplificate fluxurile de date, informaţii, instrucţiuni şi comenzi.

Page 6: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

6

Figura 1.2. Structura în 5 unităţi a calculatorului.

Interconexiunile din figură corespund următoarelor fluxuri:

În mod uzual Unitatea Artimetico-Logică şi Unitatea de Control sunt cuprinse în

procesorul computerului CPU iar unităţile de intrare şi cele de ieşire se consideră împreună,

aşa că se discută de structura în 3 unităţi a calculatorului, prezentată în figura 1.3:

1. Unitatea centrală de procesare CPU (Central Processing Unit) care conţine Unitatea

Aritmetico-Logică, o serie de regiştri şi Unitatea de Control. CPU este de fapt procesorul

computerului;

2. Unitatea de MemorieMU (Memory Unit) care este organizată pe mai multe nivele,

unele interne şi altele externe;

3. Unitatea de intrare/ieşire (I/O Unit) care conţine unităţile de intrare/ieşire.

Figura 1.3. Structura în 3 unităţi a calculatorului.

Page 7: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

7

Modul de lucru

Identificarea unităţilor componente ale calculatorului şi părţile lor funcţionale.

Figura 1.4. Structura funcțională pe componente ale unui calculator

Temă de lucru:

1. Identificați care sunt componentele de bază ale unui calculator, prin scrierea

denumirilor acestora pe o coală de hârtie. Faceți o descriere pe scurt a fiecărei

componente.

2. Dându-se toate componetele necesare, să se asambleze un calculator, urmărind

etapele de mai jos:

a. Se vor plasa componentele calculatorului pe o masă întinsă.

b. Mai întâi se deschide carcasa și se introduce placa de bază

(motherboard/mainboard), asigurând-o cu șuruburile ei.

c. Se instalează microprocesorul (Intel sau AMD) în soclul (socket-ul)

corespunzător de pe placa de bază. A se acorda mare atenție la instalarea

procesorului, deoarece pinii acestuia (cazul AMD) sau pinii soclului (cazul

Intel) sunt foarte apropiați și orice greșeală de instalare va conduce la

defectarea procesorului.

d. Se instalează plăcuțele de memorie RAM în sloturile corespunzătoare de pe

placa de bază.

e. Se introduce și se asigură Hard disk-ul în interiorul carcasei cu ajutorul unor

șuruburi, apoi se conectează cu conector de tip IDE sau SATA pe placa de

bază.

f. În același mod se introduce și se conectează unitatea optic de CD/DVD-

ROM.

g. Se instalează placa video (dacă este externă) pe un slot video de tip PCI

Express. Dacă nu este externă este necesar ca placa de bază să aibă în dotare

o placă video integrată. Multe dintre procesoarele actuale au integrate pe

Aria de registre Unitatea

de

comandă

și control Unitatea aritmetică

și logică

CPU Memoria

Memorie

RAM

Memorie

RAM

Controlere de Intrare/Ieșire

Dispozitive I/O

Hard Disk

Floppy Disk

CD/DVD-ROM

USB Disk

Mouse

Tastatură

Monitor

Imprimantă

Dispozitive

de rețea

Alte dispozitive de

instrumentație,

robotică etc.

Page 8: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

8

aceeași pastilă de silicon și un procesor grafic, denumit GPU (Graphical

Processing Unit, unitate de procesare grafică), ceea ce conduce la

performanțe mai mari și consum redus de energie, aceasta datoraă tehnologiei

avansate de fabricație de sub 45 nm.

h. Se instalează orice altă placă externă pe porturile PCI/PCI Express din

dotarea plăcii de bază. Spre exemplu, se pot instala plăci de captură TV, plăci

de sunet sau modem-uri.

i. Se conectează firele din dotarea carcasei pentru operarea led-urilor de

monitorizare (Power On/Off, Reset Switch, HDD led, Power led etc.) și

pentru porturile USB ale carcasei.

j. Se introduce în carcasă sursa de alimentare cu energie și se asigură cu

șuruburile din dotare. Apoi se conectează toate cablurile de la sursă în

porturile corespunzătoare de pe placa de bază (alimentare placă și procesor) și

la unitățile de intrare/ieșire (Hard disk, CD/DVD).

k. Se conectează monitorul la calculator prin cablul corespunzător (VGA, DVI,

HDMI).

l. Se conectează perifericele de intrare/ieșire, precum mouse-ul, tastatura sau

imprimanta.

m. Se conectează toate echipamentele necesare la o priză multiplă cu tensiunea

de 220 V (sursa de alimentare, monitorul și imprimanta).

n. Se verifică toate conexiunile și dacă totul este corespunzător se poate porni

calculatorul urmărind mesajele pe monitor.

Page 9: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

9

Laborator 2. REPREZENTAREA NUMERELOR ÎN VIRGULĂ FIXĂ

ŞI ÎN VIRGULĂ MOBILĂ. OPERAŢII ARITMETICE

În funcţie de poziţia virgulei, reprezentările binare folosite în calculator pot fi

reprezentări în virgulă fixă şi reprezentări în virgulă mobilă. În registrele calculatorului

virgula nu se reprezintă fizic nicăieri dar poziţia sa este stabilită pentru fiecare dintre

modurile de reprezentare.

Reprezentarea în virgulă fixă este folosită de toate calculatoarele electronice de uz general

deoarece au procesoare ce lucrează cu numere întregi în virgulă fixă. Reprezentarea

numerelor subunitare în virgulă fixă prezintă o serie de avantaje în operaţiile de înmulţire,

întrucât nu va duce la depăşirea capacităţii de reprezentare.

Reprezentarea în virgulă mobilă numită şi reprezentare cu virgulăflotantă se utilizează

pentru numere reale foarte mari sau foarte mici. Nu toate calculatoarele sunt proiectate

pentru aritmetica în virgulă mobilă, dar ele pot efectua operaţii cu numere în virgulă mobilă

prin interpretare cu ajutorul unor programe de compilare adecvate.

2.2. Baze de numeraţie 2.2.1. Reprezentarea numerelor în diverse baze de numeraţie

Baza unui sistem de numeraţie defineşte intervalul de valori posibile pentru cifrele ce pot

fi folosite. Cele mai utilizate baze de numeraţie sunt bazele 10 (zecimal), 2 (binar), 8 (octal)

şi 16 (hexazecimal). Există şi sisteme de numeraţie în baza 3 (ternar), 12 (duodecimal), 20

(vigesimal) şi 60 (sexazecimal) [49].

În baza zece, cea folosită în mod uzual, cifrele sunt {0, 1, ..., 9}.

În baza 2 cifrele sunt, aşa cum ştie orice utilizator de calculator, 0 şi 1. Numerele în baza

2 se reprezintă ca şiruri lungi de 0 şi 1. Reprezentarea primelor 16 cifre în principalele baze de numeraţie

Baza 10 Baza 2 Baza 8 Baza 16

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

Page 10: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

10

Bazele 8 şi 16 se folosesc de specialişti pentru scrierea şi citirea numerelor, pentru

reprezentarea internă a calculatorului. Aceste numere reprezintă puteri ale lui 2 şi conversia

din baza 2 în aceste baze se poate face cu uşurinţă.

Cifrele bazei 8 sunt {0, 1, ..., 7} iar cifrele bazei 16 sunt {0, 1, ..., 9} şi literele {A, B, C,

D, E, F} unde literele A ÷ F corespund valorii zecimale de la 10 la 15, aşa cum se poate

urmări în reprezentarea primelor 16 cifre din zecimal în bazele de numeraţie 2, 8 şi 16

reprezentată din tabelul anterior.

2.2.2. Conversia numerelor între baze

Pentru a converti un număr dintr-o bază x într-o altă bază y (unde xşiy sunt diferite de 10)

prima dată se face conversia din baza x în baza 10 prin metoda polinomială iar mai apoi din

baza 10 în baza y prin metoda împărţirii pentru partea întreagă şi prin metoda înmulţirii

pentru partea zecimală [50].

Formula generală pentru determinarea valorii în baza 10 a unui număr în baza k

reprezentat în virgulă fixă este:

-------------------------- (valoare număr)10

1

.n

mi

i

i kb (2.2.1)

Valoarea cifrei din poziţia i este dată de bi . Se consideră n cifre la partea întreagă şi

mcifre la partea zecimală.

Exemplu: numărul (541.25)10, indicele 10 reprezintă baza, k = 10, n = 3, m = 2. Acest

număr este reprezentat ca:

5 102 + 4 101 + 1 100 + 2 10–1 + 5 10–2 =

= (500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10 = (541.25)10 .

Exemplu: numărul (1012.01)2, indicele 2 indică faptul că baza în care este reprezentat

acest număr este 2, k = 2, n = 4, m = 2. Reprezentarea lui este:

1 23 + 0 22 + 1 21 + 0 20 + 0 2–1 + 1 2–2 =

= (8)10 + (0)10 + (2)10 + (0)10 + (0/2)10 + (1/4)10= (12.25)12.

Această modalitate de conversie dintr-o bază arbitrară în baza 10 se numeşte metoda

polinomială.

În această modalitate de reprezentare a numerelor în baza 2 se folosesc noţiunile de cel

mai semnificativbit (MSB-bitul din stânga, prin convenţie) respectiv cel mai puţin

semnificativbit (LSB-bitul din dreapta prin convenţie).

Cea mai simplă metodă de conversie din baza 10 în baza 2 este să convertim separat

partea întreagă şi apoi partea zecimală. De exemplu pentru a converti 29.375 din baza 10 în

baza 2 se procedează în două etape:

i. conversia întregului;

ii. conversia părţii fracţionare.

Conversia părţii întregi se face prin împărţiri succesive la baza în care se face conversia şi

reţinerea resturilor, de aceea metoda se numeşte metoda resturilor. Primul rest obţinut

reprezintă cifra cea mai puţin semnificativă (LSB) a numărului întreg convertit. La a două

împărţire deîmpărţitul este câtul de la împărţirea precedentă. Procesul se continuă până se

obţine câtul zero. Orice număr înteg din baza 10 poate fi convertit în orice altă bază, prin

împărţiri succesive la baza în care se face conversia.

Pentru exemplificare se converteşte (29.375)10 în baza 2.

Page 11: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

11

Mai întâi se converteşte partea întreagă prin împărțiri succesive:

29:2

Întreg

14

Rest

1

LSB

14:2 7 0

7:2 3 1

3:2 1 1

1:2 0 1 MSB

(29)2 = (11101)

Conversia părţii fracţionare se face prin înmulţiri succesive. Multiplicatorul este baza în

care se face conversia. Ţinem seama că partea fracţionară este mai mică decât 1 iar prin

înmulţirea cu 2 se va obţine un rezultat mai mic decât 2, aşa că partea întreagă a acestui

rezultat va fi chiar cifra cea mai semnificativă a părţii fracţionare a numărului în baza 2. La

operaţia următoare se înmulţeşte cu 2 partea fracţionară a rezultatului obţinut anterior şi

operaţia se repetă până se obţine partea fracţionară 0 sau până la obţinerea numărului de cifre

dorit. Pentru exemplul ales se prezintă calculul mai jos. aşa cum se poate urmări în exemplul

de mai jos:

.375 2

0+75

Partea

întreagă

0

MSB

.75 2 1+5 1

.5 2 1+0 1 LSB

(.375)l0 = (.011)2

Verificare:

Valoarea numărului în baza 10 se calculează după relaţia (2.2.1): (numărul)10 = b12–1+

b22–2 + b32–3 + ... + bi2–i + ... unde bi reprezintă cifrele din reprezentarea numărului în

binar, de pe poziţia i.

(0.011)2 = 02–1+ 12–2+ 12–4 = 0+1/4+1/8 = 0.25 + 0125 = (0.375)10

Rezultatul conversiei lui (29.375)10 în baza 2 este aşadar (11101.011)2 .

Pentru a converti un număr din baza 2 în baza 8 se formează grupe de câte 3 cifre binare

începând de la punctul zecimal spre stânga şi spre dreapta. Dacă ultima grupă nu este

completă se adaugă zero. Fiecare astfel de triplet se converteşte direct în baza 8, în cifra

corespunzătoare. De exemplu: (10110)2 = (010)2(110)2 = (2)8(6)8 = (26)8 .

Pentru a converti un număr în baza 16 se procedează în mod similar, dar se creează grupe

de câte 4 cifre binare, aşa cum se poate vedea în exemplul: (10110110)2 = (1011)2(0110)2 =

(B)16(6)16 = (B6)16 .

2.3. Reprezentarea numerelor în virgulă fixă

2.3.1. Consideraţii generale

Vom prezenta sintetic moduri de reprezentare a numerelor pozitive şi negative (numere

cu semn) în baza 2, în virgulă fixă şi în virgulă mobilă.

În reprezentarea numerelor în virgulă fixă, poziţia virgulei este fixă faţă de şirul de biţi

prin care se reprezintă data numerică. Reprezentarea numerelor în virgulă fixă se face atât

Page 12: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

12

pentru numere întregi cu semn sau fără semn, cât şi pentru numerele subunitare. Dacă

procesorul calculatorului lucrează în virgulă fixă cu numere subunitare, la introducerea

datelor fiecărui număr ise ataşează un factor de scară, prin care să-l transforme într-un

număr subunitar. Aliniamentul virgulei este făcut de programul de încărcare în memorie. În

compilatoarele scrise pentru virgulă fixă, factorul de scară este tratat de compilator, astfel

încât utilizatorul limbajelor de nivel înalt nu trebuie să ţină seama de acest aspect la

efectuarea operaţiilor [49].

Pentrunumerele cu semn, întotdeauna pe prima poziţie binară din partea stânga se

reprezintă semnul, convenţia fiind ca bitul 0 să reprezinte semn pozitiv iar bitul 1 semn

negativ.

Reprezentarea numerelor întregi cu semn urmează regula din figura 2.1 a), iar a celor

subunitare regula din figura 2.1.b).

Nîntreg = bn–1bn–2bn–3 … b2b1b0

semn MSB LSB

Nsubunitar = b0b–1b–2b–3 … b– (n – 1)

semn MSB LSB a) b)

Figura 2.1.Reprezentarea numerelor cu virgulă fixă cu semn.

a) numere întregi; b) numere subunitare.

Într-un sistem de numeraţie cu virgulă fixă, fiecare număr are acelaşi număr de cifre iar

punctul zecimal este întotdeauna în aceeaşi poziţie.

Diferenţa dintre reprezentarea numerelor cu virgulă fixă pe hârtie şi în calculator este că

în calculatorpunctul zecimal nu se scrie nicăieri, el se consideră că se află într-o anumită

poziţie, mereu aceeaşi. Se spune că punctul zecimal se află doar în mintea programatorului.

2.6. Operaţii aritmetice cu numere binare

Cu numerele binare se pot efectua toate operaţiile aritmetice şi algebrice care sunt

efectuate cu numerele zecimale, respectiv adunare, scădere, înmulţire, împărţire, ridicarea la

putere, extragere de radicali, funcţii trigonometrice, logaritmice comparare ş.a.m.d. Cele mai

multe dintre operaţii se reduc la operaţii de adunare, cu respectarea unor reguli prestabilite.

2.6.1. Adunarea în binar

Tabla adunării a două cifre binare este următoarea:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10 (cu depăşire, transport, carry).

Ultimul rând de mai sus se citeşte: unu plus unu este egal cu unu-zero (în baza 2)

respectiv 1 0 = 21 + 0 = (2)12.

Pe baza regulilor prezentate mai înainte se pot aduna oricare 2 numere binare A şi B.

Exemplu: vom aduna numerele A şi B unde:

– valoarea lui A este:

(23) 10 = (1 0 1 1 1)2 = 24 + 22 + 21 + 20 = 16 + 4 + 2 + 1

– valoarea lui B este:

(17) 10 = (1 0 0 0 1)2 = 24 + 20 = 16 + 1.

Page 13: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

13

Pentru adunare se aşează numerele unul sub altul şi se începe de la dreapta, ţinând seama

de transporturile rezultate din depăşirea de pe poziţia anterioară.

1 1 1 1 transport (carry out)

A + 1 0 1 1 1

B 1 0 0 0 1

S = 1 0 1 0 0 0

Valoarea sumei este (101000)2, respectiv 25 + 23 = 32 + 8 = 40.

Într-adevăr (23)10 + (17)10 = (40)10

2.6.2. Scăderea în binar

Scăderea în baza doi se realizează asemănător cu adunarea ținând seama că tabla scăderii

în binar este:

0 − 0 = 0

0 − 1 = 1 (cu împrumut, cary in )

1 − 0 = 1

1 − 1 = 0.

Se pot scădea orice numere binare. Operaţia se execută poziţie cu poziţie, de la dreapta la

stânga, la nevoie făcând un împrumut de la poziţia din stânga, un cary in.

Exemplu: vom scădea din numărul A numărul B unde:

– valoarea lui A este:

(23) 10 = (1 0 1 1 1)2 = 24 + 22 + 21 + 20 = 16 + 4 + 2 + 1

– valoarea lui B este:

(13) 10 = (1 1 0 1 )2 = 23 + 22 + 20 = 8 + 4 + 1

Pentru scădere se aşează de asemenea numerele unul sub altul şi se începe de la dreapta.

* împrumut (carry in)

A – 1 0 1 1 1

B 1 1 0 1

D = 1 0 1 0

Valoarea diferenţei este (1010)2,respectiv23 + 22 = 8 + 2 = 12.

Într-adevăr (23)10 – (13)10 = (10)10

Scăderea unui număr în binar se poate realiza prin adunarea complementului descăzutului

(acelaşi număr cu semn schimbat). La calculatoare, pentru a schimba semnul unui număr, se

foloseşte complementul faţă de 2, C2.

2.6.3. Înmulţirea în binar

Înmulţirea (multiplicarea) în binar se bazează, ca şi în sistemul zecimal, pe adunare. Tabla

înmulţirii în binar este următoarea:

0 × 0 = 0

0 × 1 = 0

1 × 0 = 0

1 × 1 = 1

Page 14: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

14

Pentru a înmulţii numerele binare A şi B se fac întâi produsele parţiale (Pi) ale lui A cu

fiecare cifră binară a lui B, luate de la dreapta la stânga şi apoi se însumează rezultatele

parţiale între ele. Produsele parţiale ale fiecărei cifre din B cu A sunt şi ele simple:

– dacă cifra din B este un 0, atunci şi produsul parţial este 0 şi nu are efect asupra

adunării;

– dacă cifra din B este un 1, atunci produsul parţial al lui A cu 1 este chiar A.

Exemplu: vom înmulţi numerele A şi B folosite în exemplul de la adunare:

A × 1 0 1 1 1

B 1 0 0 0 1

P0 1 0 1 1 1

P1 0 0 0 0 0

P4 1 0 1 1 1

P = 1 1 0 0 0 0 1 1 1

Valoarea produsului este:

28 + 27 + 22 + 21 + 20 = 256 + 128 + 4 + 2 + 1 = 391.

Într-adevăr (23) 10 × (17) 10 = (391) 10

2.6.4. Împărţirea în binar

Împărţirea în binar se aseamănă cu cea obişnuită, zecimală. Când numărul A trebuie

împărţit la numărul B, pot apărea 2 situații:

− împărţire exactă, la care interesează şi se calculează şi cifrele de după virgulă;

− împărţire cu rest, când împărţitorul B nu se cuprinde exact în deîmpărţitul A. Calculele

se opresc acolo unde ar trebui să fie virgula, dar din deîmpărţit rămâne un rest care trebuie

specificat. Împărţirea poate continua şi după virgulă, până când se obţine precizia dorită.

Împărţirea în binar constă într-un şir de scăderi. De fiecare dată când împărţitorul încape

în cifrele deîmpărţitului se pune cifra 1 la cât şi se procedează ca în împărţirea normală.

Când împărţitorul nu încape în acelaşi număr de cifre ale deîmpărţitului, se pune zero la cât,

se „coboară” următoarea cifră spre dreapta din deîmpărţit şi se continuă până când

împărţitorul încape în deîmpărţit. Restul reprezintă ultima linie.

Exemplu de împărţire în binar fără rest:

Vom împărţi numărul A la numărul B unde:

– valoarea lui A este:

(42) 10 = (1 0 1 0 1 0)2 = 25 + 23 + 21 = 32 + 8 + 1

– valoarea lui B este:

(7) 10 = (1 1 1)2 = 22 + 21 + 20 = 4 + 2 + 1

* Împrumut

A : 1 0 1 0 1 0 Câtul

B 1 1 1

1 1 1 1

0 0 1 1 1 1

1 1 1

0 0 0 0 0

Valoarea câtului obţinut este 0 1 1, adică: 22 + 21 = 4 + 2 = 6.

Restul se citeşte pe ultima linie, în exemplul prezentat 0 0 0 0.

Page 15: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

15

(43)10 : (7)10 = (6)10 fărărest.

Exemplu de împărţire în binar cu rest:

Vom împărţi numărul A la numărul B unde:

– valoarea lui A este:

(45)10 = (1 0 1 1 0 1)2 = 25 + 23 + 22 + 20 = 32 + 8 + 4 + 1

– valoarea lui B este:

(7)10 = (1 1 1)2 = 22 + 21 + 20 = 4 + 2 + 1.

* Împrumut

A : 1 0 1 1 0 1 Câtul

B 1 1 1

1 1 1 1

0 1 0 0 0 1

1 1 1

0 0 1 1 0

Valoarea câtului este este 0 1 1, adică: 22 + 21 = 4 + 2 = 6.

În acest caz, restul este pe ultima linie (0 0 1 1)2 = (3)12.

Într-adevăr (47)10 : (7)10 = (6)10 rest (3)10.

Page 16: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

16

Page 17: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

17

Laborator 3 şi 4. PORTI LOGICE FUNDAMENTALE REALIZATE IN

CIRCUIT MAKER. COMBINATII DE PORTI LOGICE

3.1. Prezentarea programului Circuit Maker,

Programul Circuit Maker, variantaStudent este disponibil liber pe Internet si poate fi

utilizat pentru:

- crearea unui circuit electronic cu elemente pasive, active (analogice sau digitale),

surse de semnal (continuu, alternativ, impulsuri de diferite forme etc.);

- modificarea unui circuit existent;

- analiza unor semnale de iesire (sau in anumite puncte ale circuitelor complexe), in

functie de semnale de intrare sau de alti parametri ai circuitului, de timp;

- captura de imagini direct de pe ecranul monitorului etc.

Programul ofera un meniu propriu si o bara cu butoane de comenzi, care sunt

prezentate in figura 3.1, preluata de pe ecranul monitorului. Au fost adaugate numere pentru

fiecare buton de comandă pentru a se putea face mai usor referire in text si pentru

identificarea lor cu eficienta.

Figura 3.1. Meniul si bara cu butoanele de comenzi a programului

Circuit Maker, Student Version

Semnificatia butoanelor de pe bara este urmatoarea (de la stanga la dreapta):

11 - Creare circuit nou;

12 - Deschidere fisier cu circuit existent deja;

13 - Salvare fisier nou creat;

14 - Imprimare circuit;

15 - Cursor utilizat pentru editare dispozitive, fire sau text;

16 - Fire pentru circuit;

17 - Caseta text;

18 - Utilitar pentru stergerea de dispozitive, fire etc.;

19 - Tool pentru zoom, marire a circuitului;

10 - Utilitar pentru rotirea unui dispozitiv;

11 - Utilitar pentru afisarea unui dispozitiv in oglinda;

12 - Utilitar Digital/Analog: Simulation mode, de unde se poate selecta modul Digital

sau Analog in functie de tipul circuitului studiat;

13 - Utilitar pentru resetare, utilizat pentru initializarea simularilor analogice si digitale;

14 - Treapta: utilizat pentru a trece la o treapta superioara a simularii;

15 - Utilitar pentru Pornirea/Oprirea simularilor;

16 - Utilitar pentru sonda de masura: utilizat pentru a indica starea logica pentru

circuitele digitale sau reprezentarea datelor analogice ce vor fi afisate pe grafic;

17 - Utilitar pentru urmarire si indicarea starii nodurilor;

18 - Utilitar pentru afisarea formelor de unda;

19 - Dispozitive: aici se pot gasi toate elementele, care sunt necesare pentru realizarea unui

circuit (atat dispozitive analogice/digitale, in functie de selectia realizata cu butonul nr. 12, cat si

surse, conectori, intrerupatoare etc.), numit in continuare deschizator al bibliotecii de dispozitive ;

20 - Utilitar pentru cautarea unui dispozitiv dupa nume, serie sau descriere;

Page 18: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

18

21 - Utilitar pentru a crea un macro;

22 - Ajutor (Help);

23 - Utilitar pentru exportarea circuitului.

3.2. Realizarea unui circuit pentru studiu

Programul ofera o serie de facilitati pentru realizarea unui circuit nou de studiu sau

pentru a modifica un circuit vechi, adaptat unor cerinte specifice. Programul ofera o serie de

circuite demonstrative care pot fi utilizate pentru a usura lucrul la realizarea circuitelor de

studiu si pentru a intelege modul de functionare al acestui program si al circuitelor

fundamentale realizate cu componente electronice.

Pentru a realiza o schema de masura sau un circuit nou, utilizand programul Circuit

Maker, variantaStudent, se apeleaza la meniul Device pentru alegerea elementelor pentru

schema. Se utilizeaza butonul Device Class(Selectorul de dispozitive ), selectand mai intai

categoria (Digital sau Analog), apoi Major Device Class, mai apoi Tipul de dispozitiv si in

final, Simbolul dispozitivului, dintre cele oferite de biblioteca programului, dupa cum se poate

urmari in figura 1.2. Se pozitioneaza dispozitivele pe locurile unde dorim amplasarea lor,

conform proiectului schemei circuitului ales. Programul ofera inca o serie de facilitati

referitor la dispozitivele alese, dupa cum se poate urmari in figura, posibilitatea de a alege

chiar o anumita componenta cu un anumit cod.

Se realizeaza un circuit trasand linii, care sa uneasca simbolurile dispozitivelor

selectate, utilizand pentru aceasta facilitatea butonului Wire tool (butonul notat cu 6 in figura

1.1).Trasarea este posibila numai atunci cand langa componenta de unde va porni linia este

activat un mic dreptunghi (semnalizat cu rosu). Se procedeaza in mai multe etape, pentru

fiecare linie pe care dorim s-o trasam.

O linie gresita se poate sterge utilizand acelasi cursor, pozitionat pe fir. In momentul in

care aceasta este marcata cu coloarea rosie, se face un singur clik si linia dispare. In mod

identic se procedeaza pentru stergerea unei componente amplasate intr-o pozitie incorecta,

utilizand butonul 5 (Select, Move or Delet component, wire or text) sau butonul 8 (Delete).

Componentele se pot muta in interiorul circuitului, utilizand butonul 5.

Un circuit vechi poate fi modificat in mod asemanator, stergand componente, fire

existente si adaugand altele noi.

Pe circuitul realizat se poate introduce un text explicativ cu ajutorul butonului 7 (Add

text ).

Figura 3.2. Caseta cu biblioteca de dispozitive a programului

Page 19: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

19

3.3 Studiul portilor logice standard

3.3.1. Utilizand programul Circuit Maker, Student Version, se selecteaza, dintre dispozivele

digitale oferite de program, circuitele logice simple: NU, SI, SAU, SI-NU, SAU-NU, XOR si XOR-

NU. Folosind facilitatile oferite de program (fire, comutatoare etc.) se realizeaza circuite logice

pentru fiecare functie logica elementara prezentata la punctul 8.2, conform exemplului din figura 8.7,

asa cum este indicat la punctul 1.3.1 din laboratorul nr. 1. Pentru indicarea starii logice la iesire in

functie de nivelul semnalului de la intrare, se utilizeaza diodele luminiscente amplasate la iesirea

circuitelor.

Se aleg valorile tensiunilor aplicate la intrare pentru starea logica 1 si starea logica 0, care

corespund celor doua pozitii ale comutatorului (inchis, respectiv deschis).

Nota: Atentie la alegerea comutatoarelor, de preferat modelul prezentat in exemplul din figura 8.7.

3.3.2. Sa se scrie expresiile functiilor la iesire si sa se completeze tabele de adevar pentru

fiecare functie.

Sa se urmareasca semnalizarile diodelor luminiscente si sa se compare cu tabelul de adevar

calculat.

In figura 3.3 este realizat un circuit demonstrativ pentru urmarirea modului de functionare a

circuitelor logice elementare studiate in lucrare. Diodele luminiscente indica starea logica la iesire in

functie de nivelul semnalului de la intrare. Pentru exemplul considerat, la intrarea starii logice 1 ii

corespunde o tensiune de 5 V, iar starii logice 0 ii corespunde o tensiune 0, respectiv comutatorul

deschis.

Figura 3.3. Circuite logice elementare (standard)

3.3.3. Pentru circuitele logice realizate sa se studieze pentru cazul in care semnalul de intrare

este negat. Sa se completeze tabelele de adevar corespunzatoare.

3.4 Porti logice complexe

3.4.1. Se realizeaza circuitul logic cu elemente NU si NAND prezentat in figura 9.3, utilizand

facilitatile oferite de programul Circuit Maker, Student Version respectiv se selecteaza dintre

dispozivele digitale circuitele logice simple necesare NU si NAND, conform schemei, apoi fire si

comutatoare oferite de program.

Nota: Atentie la alegerea comutatoarelor, de preferat modelul din exemplul din figura 3.4.

Page 20: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

20

Pentru indicarea starii logice la iesire, in functie de nivelul semnalului de la intrare se

utilizeaza diodele luminiscente amplasate la iesirea circuitelor, asa cum se poate urmari in figura. L1,

..., L4 reprezinta diode luminiscente, care indica functiile f1, ..., f4, astfel pentru starea 0 a functiei

fi dioda Li este stinsa (apare alba pe ecran), iar pentru starea 1 este aprinsa (rosu) pe ecran.

Figura 3.4. Circuit logic realizat cu elemente NU si NAND

Se aleg valorile tensiunilor aplicate la intrare pentru starea logica 1 si starea logica 0, care

corespund celor doua pozitii ale comutatorul (inchis, respectiv deschis).

3.4.2. Sa se scrie expresiile functiilor f 1, f 2, f 3, f 4 si a functiei calculata de circuitul intreg si sa

se completeze tabelul de adevar 3.1.

Sa se urmareasca semnalizarile diodelor luminiscente si sa se compare cu tabelul de adevar

calculat. Tabel 3.1

a1 a2 a3 f 1 f 2 f 3 f 4

0

0 0

0 1

1 0

1 1

1

0 0

0 1

1 0

1 1

3.5. Circuit logic cu elemente NU si NOR

3.5.1. Se modifica circuitul din figura 9.3 utilizand elemente NOR in locul celor NAND si se

realizeaza circuitul logic prezentat in figura 9.4,

Page 21: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

21

Figura 3.5. Circuit logic cu elemente NU si NOR

3.5.2. Sa se scrie expresiile functiilor f 1, f 2, f 3, f 4 si a functiei calculate de circuitul intreg si sa se

completeze tabelul de adevar de mai jos:

a1 a2 a3 f 1 f 2 f 3 f 4

0

0 0

0 1

1 0

1 1

1

0 0

0 1

1 0

1 1

Sa se urmareasca semnalizarile diodelor luminiscente si sa se compare cu tabelul de adevar

calculat.

Sa se compare tabelul de adevar cu tabelul cel teoretic. Sa se justifice deosebirile.

3.5.3. Pentru ambele circuite logice complexe realizate sa se studieze pentru cazul in care a1

este negat sau a2 nu este negat. Sa se completeze tabelele de adevar corespunzatoare.

3.5.4. Sa se realizeze alte circuite logice pornind de la porti elementare, utilizand facilitatile

oferte de programul Circuit Maker, Student Version.

Page 22: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

22

Page 23: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

23

Laborator 5. DECODIFICATOR, DEMULTIPLEXOR,

CODIFICATOR, MULTIPLEXOR.

5.1. Decodificator

5.1.1. Se realizeaza schema unui decodificator cu ajutorul programului Circuit Maker,Student

Version.

Pentru aceasta se aleg elementele pentru schema utilizand butonul Selectorul de dispozitive,

selectand mai intai Clasa -Digitalbases, apoi Tipul de dispozitiv si mai apoi Simbolul dispozitivului, dintre

cele oferite de biblioteca programului. Se realizeaza un circuit, trasand linii care sa uneasca simbolurile

selectate. Se pozitioneaza pe fiecare intrare un comutator Switch, alegand unul dintre cele oferite de baza

de comutatoare a programului, utilizand butonul Switel logic simple.

5.1.2. Se stabilesc valorile tensiunilor pentru cele doua nivele logice: Pentru semnal logic

1 tensiunea este de 5 V, iar pentru semnal logic 0 tensiunea este de 0 V. Valoarea tensiunii de intrare

se fixeaza la 10 V.

5.1.3. Se verifica realizarea functiilor la iesire comutand corespunzator comutatoarele si

urmarind aprinderea LED-urilor L1, L2, L3, L4 din schema realizata (din figura 5.1).

Figura 5.1. Decodificator cu 2 intrari si 4 iesiri

5.1.4. Sa se realizeze in laborator un decodificator elementar si unul cu trei intrari (respectiv 23

iesiri). Sa se intocmeasca tabelul de adevar corespunzator, urmarind semnalizarile LED-urilor de pe

iesire.

5.2. Demultiplexor

5.2.1. Se realizeaza schema unui demultiplexor cu doua intrari, a si b, plus o intrare de validare

E (si respectiv 4 iesiri, f0, f1, f2, f3), cu ajutorul aceluiasi program, alegand elementele pentru schema,

dintre cele oferite de program. Se realizeaza un circuit, trasand linii care sa uneasca simbolurile

selectate, se pozitioneaza pe fiecare intrare un comutator.

5.2.2. Se stabilesc valorile tensiunilor pentru cele doua nivele logice: pentru nivel logic

1 tensiunea este de 5 V, iar pentru nivel logic 0 tensiunea este de 0 V. Valoarea tensiunii de intrare se

fixeaza la 10 V.

5.2. Se verifica realizarea functiilor la iesire, comutand corespunzator comutatoarele si

urmarind aprinderea LED-urilor L1, L2, L3, L4 din schema 5.2.

Page 24: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

24

Figura 5.2. Demultiplexor cu 2 intrari de date

5.2.4. Sa se realizeze in laborator un demultiplexor cu trei intrari de date si o intrare de

validare. Sa se intocmeasca tabelul de adevar corespunzator, urmarind semnalizarile LED-urilor de

pe iesire.

5.3. Codificator

5.3.1. Se realizeaza schema unui codificator cu 10 intrari (si respectiv 4 iesiri), cum este cea

din figura 5.9, cu ajutorul programului Circuit Maker, Student Version. Pentru aceasta se aleg

elementele pentru schema, dintre cele oferite de program, in acelasi mod ca la decodificator. Se

realizeaza un circuit, trasand linii care sa uneasca simbolurile selectate, se pozitioneaza pe fiecare

intrare un comutator.

5.3.2. Valorile tensiunilor celor doua nivele logice sunt: pentru nivelul logic 1 tensiunea este

de 5 V, iar pentru nivelul logic 0 tensiunea este de 0 V. Valoarea tensiunii de intrare se fixeaza la 10

V. Se verifica realizarea functiilor la iesire, comutand corespunzator comutatoarele si urmarind

aprinderea LED-urilor L1, L2, L3, L4 din schema 5.3.

Figura 5.3. Codificator cu 10 intrari

Page 25: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

25

5.4. Multiplexor

5.4.1. Se realizeaza schema unui multiplexor cu doua intrari de date, a si b, plus o intrare de

validare E si una de selectie si, respectiv, o singura iesire cu ajutorul programului Circuit Maker, Student

Version,alegand elementele necesare in acelasi mod ca la decodificator. Se realizeaza un circuit, trasand

linii, care sa uneasca simbolurile selectate, se pozitioneaza pe fiecare intrare un comutator.

5.4.2. Se stabilesc valorile tensiunilor pentru cele doua nivele logice: pentru nivelul logic

1 tensiunea este de 5 V, iar pentru nivelul logic 0 tensiunea este de 0 V. Valoarea tensiunii de intrare se

fixeaza la 10 V.

5.4. Se verifica realizarea functiilor la iesire, comutand corespunzator comutatoarele si

urmarind aprinderea LED-ului L din schema 5.4.

Se urmareste realizarea urmatorului tabel de adevar.

A b E S W

1 0 1 0 A

0 1 1 1 B

1 0 0 FM FM

0 1 0 FM FM

Figura 5.4.Multiplexor cu 2 intrari de date

Page 26: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

26

Page 27: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

27

Laborator 6. STUDIUL CIRCUITELOR BASCULANTE BISTABILE

6.1. Principiul de funcţionare al circuitelor basculante

Un circuit basculant poate stoca fie un 0 fie un 1 logic. Starea bistabilului este dată de valoarea

curentă stocată şi se poate modifica numai la anumite momente de timp, momente impuse de o intrare

specială de comandă numită de tact sau de clock, notată CLK în această carte, noua stare a bistabilului

depinzând atât de starea sa curentă cât şi de intrarea de comandă.

Trecerea dintr-o stare în alta (adică „bascularea” circuitului) are loc într-un timp în general foarte

scurt (timp care depinde de constantele de timp ale circuitului) şi apare ca o variaţie bruscă a

mărimilor electrice de la cele două „ieşiri” ale circuitului. Procesul de basculare se declanşează fie sub

acţiunea unor semnale de comandă externe (cazul circuitului basculant bistabil şi monostabil), fie ca

urmare a proprietăţii circuitului de a bascula spontan dintr-o stare în cealaltă (cazul circuitului

basculant astabil).

Cel mai simplu circuit basculant (de fapt circuit latch) are o intrare de Set, notată S (de la cuvântul

Set din limba engleză care se traduce cu înregistrare) activă pe 1 sau S (Set negat) activă pe 0 şi o

intrare de Reset (de la cuvântul Reset din limba engleză care se traduce cu ştergere) notată R, activă

pe 1 sau R (Reset negat) activă pe .0 Prin convenţie S sau S comandă înscrierea unui eveniment

(aducerea circuitului în starea 1), iar R sau R comandă uitarea lui (prin aducerea circuitului în starea

0). Este realizat cu elemente logice de tip NOR sau NAND cu două tranzistoare (sau cu alte elemente

electronice active) cuplate între ele prin impedanţele 1Z şi 2Z şi o buclă de reacţie pozitivă,

supraunitară [1].

În funcţie de natura şi valoarea impedanţelor de cuplaj se disting trei variante principale de circuite

basculante: circuit basculant astabil, circuit basculant monostabil şi circuit basculant bistabil.

Circuitul basculant astabil (CBA), numit şi multivibrator, are ambele stări cvasistabile, ritmul cu care

îşi schimbă stările este determinat de valorile rezistenţelor şi capacităţilor care formează impedanţele

circuitului.

Circuitul basculant monostabil (CBM) are o stare permanent stabilă şi una cvasistabilă. Una din

impedanţe este pur capacitivă, iar cealalată este rezistivă [1, 15].

În laborator vom studia numai circuitul basculant bistabil, de tipul celui prezentat în figura 61.

Figura 6.1. Circuit basculant bistabilrealizat cu componente discrete

Page 28: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

28

6.2. Circuite basculante bistabile R-S

Circuitul basculant bistabil (CBB), numit şi flip-flop, este reprezentat în figura 6.2. Este un circuit

basculant care rămâne permanent în oricare din cele două stări, schimbarea din una în cealaltă fiind

posibilă numai sub acţiunea unui semnal (impuls) extern. Impedanţele de cuplaj pentru CBB sunt

rezistente. Uneori se folosesc şi capacităţi conectate în paralel care au rolul de a reduce timpul de

basculare, numite capacităţi de accelerare. CBB preia eşantioane din semnalele de intrare şi îşi

modifică semnalele de ieşire numai în momente determinate de semnalul extern. CBB sunt elemente

de bază în realizarea circuitele digitale complexe (memorii, microprocesoare). Cel mai folosit circuit

de tip bistabil este circuitul basculant de tip R-S. Se numeşte bistabil R-S sau latch simplu (se poate

traduce prin zăvor întrucât circuitul poate fi zăvorât într-o anumită stare la primirea unei comenzi

externe). Un CBB de tip R-S poate fi format din două porţi NOR sau din două porţi NAND, intrările

fiind cuplate intersectat la ieşiri aşa cum este reprezentat în figura 6.2 a) şi b).

a) b)

Figura 6.2. Circuite basculante bistabile realizate

cu porţi logice. a) NOR şi b) NANDI.

Operaţiile logice pe care le poate efectua un bistabil cu porţi NOR reprezentat în figura 6.2 a) pot fi

exprimate prin relaţiile următoare şi tabelul de stări de mai jos [15]

RQSQ

SQRQ .

R S Q Q

0 0 0 0(FM)

0 1 1 0

1 0 0 1

1 1 * *

Urmărind fiecare din cele două bucle de reacţie, se poate urmări că pentru 1S (şi )0R se

obţine [15]:

)1(111 QQQRQSQ

).1(00010 QSQRQ

La analiza funcţiei bistabilului R-S trebuie să se ţină seama că în momentul aplicării semnalelor,

CBB poate să se afle într-una din cele două stări (stabile) deci trebuie să se ia în consideraţie toate

combinaţiile posibile pentru ieşirea activă 1tQ în funcţie de stările tQ existente în momentul aplicării

comenzilor.

pentru bistabili sunt valabile următoarele observatii:

a) aplicarea semnalului 0 la ambele intrări nu modifică starea bistabilului

b) aplicarea semnalului 1S simultan cu 0R determină ,11 tQ indiferent de starea

bistabilului înainte de aplicarea comenzii. Această trecere a bistabilului în starea 1Q se numeşte

poziţionare;

c) aplicarea semnalului 1R simultan cu 0S determină circuitul să treacă sau să rămână pe

poziţia 0, operaţie numită ştergere;

Page 29: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

29

d) aplicarea simultană a semnalelor 1 la ambele intrări, S şi R, generează o stare nedeterminată, de

aceea comanda 1 SR este interzisă, adică S şi R nu pot fi simultan 1 , respectiv nu putem avea

două impulsuri active la intrare .

În mod similar poate fi analizat un bistabil R-S realizat cu porţi NAND reprezentat în figura 6.2 b)

tt QRSQ 1

.1 tt QSRQ

De regulă, în cazul circuitelor de tip NAND, comutarea se face prin 0 logic (adică pe front

negativ), aplicându-se semnalele R şi respectiv S la intrările bistabilului. Ca urmare, pentru a

memora bitul 1 (adică )1Q se vor aplica la intrări semnalele 0S şi 1R şi invers, respectiv

1S şi 0R pentru a obţine bitul 0. În acest caz este interzisă aplicarea simultană a comenzilor

0R şi ,0S deci condiţia obligatorie este:

0 SR sau .1 SR

Pentru obţinerea ecuaţiilor logice ale ieşirilor se apelează la minimizarea funcţiilor logice 1tQ şi

respectiv 1tQ

6.3. Studiul schemei circuitului basculant bistabil si a modului de basculare

6.3.1. Programul Circuit Maker, Student Version ofera ca circuit demonstrativ circuitul basculant

bistabil prezentate în figura 6.3. Sa se compare acest circuit cu cel teoretic.

6.3.2. Sa se studieze modul de basculare si sa se vizualizeze semnalele de pe colectorii

circuitului basculant bistabil. Sa se observe modul in care o iesire este permanent in 1 iar cealalta in

0, in contratimp, iar comutarea se face sub actiunea semnalului extern, pe frontul pozitiv al

impulsului de tact.

Sa se reprezinte cele doua semnale de iesire pe acelasi grafic

6.3.3. Sa se masoare amplitudinea semnalului se iesire si sa se calculeze 0,1 Vmax si 0,9 Vmax.

Sa se masoare timpii de comutaţie .Se noteaza valorile pentru a fi comparate cu cele de la tranzistorul

bipolar si de la celelalte circuite basculante.

6.4 Dependenta perioadei semnalului de iesirede caracteristicile circuitului

Sa se masoare perioada semnalului obtinut la cele doua iesiri si sa se compare cu frecventa

semnalului de intrare. Ce se observa?

In figura 6.5 sunt prezentate cele doua semnale de iesire suprapuse peste semnale intrare,

(semnalele de iesire sunt reprezentate cu culori foarte deschise)

Sa se modifice valorile capacitatilor si rezistentelor si din circuitele de colector ale celor doua

tranzistoare, sa se vizualizeze noua forma a semnalului, dand o noua simulare. Sa se masoare noua

perioada si sa se calculeze noua frecventa. Interpretati rezultatele. Repetati masurarile pentru timpul de

comutatie si faceti comparatii.

Page 30: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

30

Figura 6.3. Circuit basculant bistabil:Schema de masura pentru

semnalele de iesire ale cu evidentierea punctelor de masura;

Figura 6.4. Semnalele de iesire, suprapuse Circuit basculant bistabil; c) Cele doua semnale de intrare,

suprapuse (sunt mentinute si formele semnalelor de iesire, dar cu culori foarte deschise)

Figura 6.5.:Cele doua semnale de intrare, suprapuse (sunt mentinute si formele semnalelor de iesire, dar cu culori foarte

deschise) pentru circuit basculant bistabil

Page 31: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

31

Laborator 7. TIPURI DE CIRCUITE BASCULANTE BISTABILE

7.1. Circuit basculant bistabil R-S

7.1.1. Folosind facilitatile oferite de programul Circuit Maker, Student Version sa se

realizeze un circuit basculant bistabil de tip R-S, foloseind porti logice elementare AND si

NOR, comutatoare si diode luminiscente) asa cum se prezinta in figura 7.1. Starii logice 0 ii

corespunde tensiunea 0 iar starii logice 1 o tensiune de 5V. Valoarea minima a semnalului de

tact este de asemenea 0 iar cea maxima 5 V.

7.1.2. Sa se urmareasca functionarea circuitului şi sa se intocmeasca tabelul de adevar pe

baza semnalizarii LED-urilor si sa se compare cu tabelul de adevar teoretic.

Figura 7.1. Circuit basculant bistabil R-S

7.1.3. Sa se realizeze un circuitul folosind din biblioteca programului simbolul unui CBB

R-S, astfel incat sa se poata vizualiza forma semnalului la iesire comparativ cu cel de intrare.

Analizati modul de comutare pe frontul activ al tactului.

7.2. Circuit basculant bistabil D

7.2.1. Folosind facilitatile oferite de programul Circuit Maker, Student Version sa se

realizeze un circuit basculant bistabil de tip D, folosind porti logice elementare NOT, AND si

NOR cu trei intrari, comutatoare si diode luminiscente), asa cum se prezinta in figura 7.2.

Starii logice 0 ii corespunde tot o tensiune 0 iar starii logice 1 o tensiune de 5 V. Valoarea

minima a semnalul de tact este, de asemenea, 0 iar cea maxima 5 V.

7.2.2. Sa se urmareasca functionarea circuitului si sa se intocmeasca tabelul de adevar pe

baza semnalizarii LED-urilor si sa se compare cu tabelul de adevar teoretic.

7.2.3. Sa se realizeze un circuitul folosind din biblioteca programului simbolul unui CBB

de tip D astfel incat sa se poata vizualiza forma semnalului la iesire comparativ cu cel de

intrare. Analizati modul de comutare in afara palierului activ al tactului si evidentiati

intarzierea introdusa de acest tip de bistabil.

Figura 7.2. Circuit basculant bistabil D

Page 32: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

32

7.3. Circuit basculant bistabil J-K

7.3.1. Circuit Maker, Student Version ofera ca circuit demonstrativ un numarator realizat

cu circuite basculant bistabil de tip J-K sub denumirea MIXED 93, prezentat in figura 7.3,a.

Acest circut poate fi folosit pentru a vizualiza forma semnalului la iesirea din fiecare bistabil.

7.3.2. Sa se studieze modul in care CBB J-K elimina capcana de

0 si 1 si pe cea a confirmarii simultane a ambelor intrari de comanda.

7.3.3. Vizualizati forma semnalului de iesire la fiecare din cele

4 CBB de tip J-K si comparati-o cu cea de la intrare. Care este semnalul de tact aplicat CBB

2, 3 si 4? Ce se observa?

In figura 7.3,b este prezentata, pentru demonstratie, forma semnalului la iesirea primului

bistabil impreuna cu semnalul de tact. S-a masurat frecventa acestui semnal. Se observa ca

perioada semnalului de iesire este dublul perioadei semnalului de tact. Interpretati!

a)

b)

Figura 7.3. Bistabili J-K: a) Circuit logic; b) Semnalul la iesire comparativ cu cel de tact

Page 33: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

33

Laborator 8. ARHITECTURA SETULUI DE INSTRUCTIUNI

Procesoarele pot fi clasificate după numărul maxim de adrese din memoria principală în

câmpurile instrucţiunilor lor. Instrucţiunile cu doi operanzi necesită cel mult trei adrese în

memorie. Pentru rezolvarea unei anumite probleme, şi evident un timp mai lung de execuţie.

Instrucţiunile lungi, cu adrese multiple, deşi conduc la programe mai scurte, necesită circuite

electronice complexe pentru decodificare şi prelucrare.

8.1 Ciclul instrucţiunii

Ansamblul de operaţii legate de realizarea unei instrucţiuni se numeşte ciclu-instrucţiune.

Pentru execuţia unei instrucţiuni trebuie realizate următoarele două faze:

1. Citirea instrucţiunii din memorie şi transferarea ei în CPU. Această fază se numeşte

FETCH;

2. Executarea instrucţiunii de către unităţile funcţionale ale calculatorului, respectiv

generarea rezultatului. Această etapă se numeşte EXECUTE.

O secvenţă FETCH-EXECUTE pentru o instrucţiune formează ciclul instrucţiune. Aceste

două faze conţin mai multe etape şi se reiau în mod repetă în timpul rulării unui program, aşa

cum se prezintă în figura 8.1 [7].

Faza FETCH cuprinde următoarele etape succesive (paşi):

1. CPU citeşte din memorie de la adresa specificată în registrul numărător de program-PC

(Program Counter) instrucţiunea ce va fi executată şi o încarcă în registrul de instrucţiune

(RI) din UC.

2. Este identificată operaţia ce va avea loc şi sunt stabiliţi operanzii, din câmpurile

instrucţiunii.Instrucţiunea este împărţită în două câmpuri:

- câmpul operaţie (OPCODE) pe care îl dirijează în registrul de funcţie (RF);

- câmpul de adresă (ADDRESS) pe care îl stochează în registrul de adresă (RA).

3. UC decodifică OPCODE operaţie numită interpretare OPCODE.

8. UC incrementează numărătorul de program (PC) pentru a specifica adresa următoarei

instrucţiuni de executat.

Faza FETCH este obligatorie pentru orice instrucţiune întrucât ea asigură extragerea

instrucţiunii curente din memorie şi decodificarea acesteia.

După generarea adresei următoarei instrucţiuni începe faza EXECUTE, care cuprinde

următoarele etape:

Page 34: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

34

Figura 8.1. Etapele ciclului instrucţiunii.

5. UC determină adresa efectivă a operandului sau adresele efective ale operanzilor,

folosind informaţia din registrul de adresă.

6. CPU citeşte data (datele) din memorie de la adresa calculată ca adresă efectivă şi o

extrage ca fiind operandul. Faza se numeşte FETCH OPERAND. Data este transferată în

ALU. Uneori operanzii sunt stocaţi în interiorul CPU în registrele locale ale ALU.

7. UC comandă ALU să efectueze funcţia sau operaţia specifică de OPCODE prin

procesarea operanzilor şi determinarea rezultatelor. Aceasta este faza de execuţie propriu-

zisă, cea codificată în instrucţiune.

8. Rezultatul este memorat la destinaţia corespunzătoare, în memorie sau în registrele

speciale ale CPU.

Se determină următoarea instructiune şi ciclul se reia de câte ori este nevoie pentru a

executa întreaga succesiune de instrucţiuni din program.

Anumite etape din ciclul instrucţiune pot lipsi pentru anumite instrucţiuni, de exemplu din

instrucţiunile fără operanzi lipsesc etapele 5 şi 6. În cazul instrucţiunilor cu operanzi multipli

aceste etape se repetă de un anumit număr de ori.

În cazul instrucţiunilor de salt nu sunt necesari paşii 4, 5 şi 8, iar în instrucţiunile de

comparare pasul 8 lipseşte, întrucât rezultatul nu trebuie memorat.

Totdeauna faza FETCH este unică, iar faza EXECUTE este diferită în funcţie de tipul

instrucţiunii concrete ce trebuie executată.

Un ciclu instrucţiune se execută din punct de vedere al CPU într-un ciclu maşină de

ordinul micro sau chiar nanosecunde.

Page 35: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

35

Viteza de procesare se măsoară în kHz sau multiplii acestuia, sau numărul de

instrucţiuni/secundă (MIPS – milioane de instrucţiuni pe secundă), sau prin numărul de

operaţii în virgulă mobilă (FLOP).

8.2. Tipuri de instrucţiuni

Aşa cum am mai specificat, există mai multe tipuri de instrucţiuni pe care le poate executa

un procesor: aritmetice, logice, pentru transferul informaţiei, pentru deplasarea şi rotirea

datelor, de ramificare (pentru controlul secvenţei de program), pentru controlul procesorului,

pentru operaţii cu şiruri etc. Pentru fiecare tip de procesor instrucţiuni au forme şi sarcini

specifice. Vom prezenta pe scurt aceste tipuri de instrucţiuni pentru procesoarele Intel x86.

8.2.1 INSTRUCȚIUNI (OPERAŢII) DE TRANSFER ÎNTRE REGISTRE

Microprocesorul convenţional din seria Intel x86 are următoarele registre pentru lucrul

curent: AX, BX, CX şi DX (respectiv extensiile pe 32 biţi, EAX, EBX, ECX şi EDX), astfel:

Registrele de uz general pe 32 biţi

31 0

EAX

EBX

ECX

EDX

ESI – Source Index

EDI – Destination Index

EBP – Base Pointer

ESP – Stack Pointer Denumiri alternative pentru (sub)registrele generale de 8 şi 16 biţi

31 16 15 8 7 0

Denumiri alternative AX

AH AL

EAX

Denumiri alternative BX

BH BL

EBX

Denumiri alternative CX

CH CL

ECX

Denumiri alternative DX

DH DL

EDX

Denumire alternative BP

EBP

Denumire alternative SI

ESI

Denumire alternative DI

EDI

Denumire alternative SP

ESP

Page 36: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

36

Principial, pentru lucrul uzual se lucrează cu registrele de 16 biţi, cele generale putând fi

împărţite în câte două registre de 8 biţi: cel care reţine octetul inferior, notat cu sufixul L (de

la Low)şi cel care reţine octetul superior, notat cu sufixul H (de la High).

Microprocesoarele de diverse tipuri au mai multe registre, cu mai mult de 16 biţi (cele

din seriile I-386, I-486 şi Pentium ). Registrele de mai sus au de fapt la aceste procesoare un

număr de 32 de biţi, dar pot fi folosite ca registre de 16 biţi cu notatiile de mai sus. În cazul în

care se doreşte folosirea lor ca registre de 32 de biţi, denumirea lor va fi precedată de litera E

(de la "extended"), iar în preambulul programului va trebui pusă directiva .386, pentru a

preciza că este folosit un procesor de la I-386 în sus.

De asemenea, microprocesoarele conţin 4 registre de segment: CS, DS, ES, SS.

Registrele de segment pe 16 biţi

15 0

CS – Code Segment

DS – Data Segment

ES – Extra Segment

SS – Stack Segment

F

S Registre

suplimentare pentru extensia de 32 biţi G

S

Registrul indicatorilor de condiţii, FLAGS de 16 biţi (respectiv, EFLAGS pe 32 biţi)

15 0

FLAGS

Registrul indicatorului de instrucţiuni (Instruction Pointer), IP de 16 biţi (respectiv, EIP

de 32 biţi)

15 0

IP – Instruction Pointer

Notaţiile folosite pentru registre în cele ce urmează sunt:

de 8 biţi - r8: AL,AH,BL,BH,CL,CH,DL,DH;

de 16 biţi - r16: AX,BX,CX,DX,SI,DI,BP,IP,F;

de 32 biţi - r32: EAX,EBX,ECX,EDX,ESI,EDI,EBP,EIP,EF;

registre de segment - rs: DS,ES,SS,CS.La procesoare de la I-386 în sus mai există

două registre suplimentare de segment, FS şi GS.

8.2.2. INSTRUCŢIUNI DE TRANSFER ÎNTRE REGISTRE

Principale instrucţiune pentru memorarea datelor în registrele microprocesorului este

instrucţiunea MOV.

Sintaxă: MOV destinaţie, sursă

Acţiune: ‘destinaţie’ ia valoarea ‘sursă’ :

destinaţie← sursă

Operanzi:

destinaţie: r8, r16, r32, rs

(registre generale de 8, 16, 32 biţi şi registre de segment)

Page 37: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

37

sursă: r8,r16,r32,rs,n,nn,nnnn

(registre generale de 8, 16, 32 biţi, registre de segment şi constante de 8, 16 şi 32 biţi)

Restricţii: nu sunt posibile transferuri de tip:

-MOV rs,rs (nu sunt posibile transferuri între registre de segment)

-MOV rs,nn (nu se poate scrie o constantă direct într-un registru de segment)

-MOV cs,* (nu se poate transfera nimic în registrul de segment de cod)

Exemplul 8.1:

MOV AX, 33H ;Încarcă în AX constanta hexa 0033H

MOV DX, 1122H ;Încarcă în DX constanta hexa 1122H

MOV CL, AL ;Încarcă în CL conţinutul lui AL

MOV BL, DH ;Încarcă în BL conţinutul lui DH

MOV AH, DL ;Încarcă în AH conţinutul lui DL

Mod de lucru : Toate constantele numerice specificate mai jos sunt hexazecimale, deci în cazul în

care nu se pune directiva .radix 16 în zona de început a programului, constantele vor fi

urmate de sufixul h.

Rularea programelor se va face cu TD (depanatorul Turbo Debugger) în modul pas cu

pas (cu tasta F7) şi după fiecare instrucţiune se va urmări în fereastra de afişare a registrelor

modificarea conţinutului acestora.

Se vor scrie şi testa următoarele programe:

P 8.1. Program de scriere în registrele AL, BL, CL şi DL a constantelor 99,AA, BB,

respectiv CC.

P8.2. Se va completa programul anterior pentru a transfera conţinutul registrului AL în

registrele BL, BH, CL, şi DH.

P 8.3. Program de scriere în registrele AX, BX, CX şi DX a constantelor 1122, 3344,

5566, respectiv 7788.

P 8.4. Se va completa programul anterior pentru a transfera conţinutul registrului

registrului BX în registrul DX, şi al registrului CX în AX.

P 8.5. Program care să transfere constanta 1234 în registrul DS şi constanta 5678 în

registrul DX.

P 8.6. Să se scrie în registrele AL şi BL, constantele 99 şi AA şi se va face apoi

interschimbarea conţinutului acestora.

8.2.3. INSTRUCŢIUNI DE INTERSCHIMBARE ÎNTRE REGISTRE

Operaţia automată de interschimbare a conţinuturilor din două registre este XCHG.

Sintaxa: XCHG sursă1, sursă2

Acţiune: Se interschimbă conţinuturile registrelor sursă1 şi sursă2.

sursă1←sursă2

sursă2←sursă1

Operanzi: dst,src:r8,r16,r32

Restrictii:Nu există instrucţiuni de tip:

-XCHG rs,rs (interzis XCHG pentru interschimbarea a două registre de segment)

-XCHG cs,* (interzis XCHG pentru interschimbarea registrului de segment de cod cu

orice alt tip de registru)

Page 38: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

38

Mod de lucru :

P 8.7. Se vor încarca următoarele registre astfel:

AL cu 11

BL cu 22

CX cu 3344

DX cu 5566

după care se va interschimba conţinutul celor de 8 biţi şi conţinutul celor de 16 biţi.

P 8.8. Se vor încărca registrele AL, AH, BL şi BH constantele AA,BB,CC şi DD şi

apoi se va efectua permutarea circulară a conţinutului celor 4 registre. Se vor folosi

instrucţiuni de tip XCHG, şi după terminarea rulării programului registrele vor trebui să aibă

valorile: AL=BBh, AH=CCh, BL=DDh şi BH=AAh

8.2.4. INSTRUCŢIUNI DE ADUNARE ŞI SCĂDERE

Sintaxe generale:

ADD dst,src - Adunare : dst=dst+src;

ADC dst,src - Adunare cu transport (CF): dst=dst+src+CF

SUB dst,src - Scădere: dst=dst – src;

SBB dst,src - Scădere cu transport (“carry”) sau împrumut (“borrow”):

dst=dst-src-CF;

În toate operaţiile aritmetice, se foloseşte implicit convenţia complementului faţă de

2. Astfel, numerele pozitive au bitul cel mai semnificativ (MSB) 0, iar cele negative au

MSB 1. Numerele negative vor avea valoarea diferenţei între valoarea lor absoluta şi 28n ,

unde n este numărul de octeţi folosiţi.

Exemple:

25h=0012.0101 este un număr pozitiv, având echivalentul zecimal 37;

0B3Ch= 0000.1011.0011.1100 este un număr pozitiv, cu echivalent zecimal 2876;

0A7h=1012.0111 este un număr negativ (dacă este considerat de un octet), cu valoare

absoluta 167 şi valoare în complement faţă de 2 care se calculeaza conform formulei

167-28 = -89;

0CEACh = 1100.1112.1012.1100 este un număr negativ de doi octeţi, cu valoare

absoluta 52908 şi valoare în complement faţă de 2 care se calculeaza conform

formulei 52908-216 = -12628;

Se observă că un eventual 0 în faţa numărului scris în format hexazecimal nu înseamna

că acesta are semn pozitiv. Contează numai primul bit al octetului cel mai semnificativ.

Aceste transformări se pot face cu utilitarul Calculator din Windows, având opţiunea

View - > Scientific.

Mod de lucru:

P 8.9. Se vor încarca registrele cu constantele: AX=1122, BX=3344, CX=5566,

DX=7788 şi se va efectua următoarea succesiune de operaţii:

AL+66

AL+BL

AL-CL

AL-22

AL+BL+CL+DL

Page 39: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

39

P 8.12. Se vor încarca registrele cu constantele: AX=1122, BX=3344, CX=5566,

DX=7788 şi se va efectua următoarea succesiune de operaţii:

AX+6666

AX+BX

AX-CX

AX-22

AX+BX+CX+DX

P 8.11 Se vor încarca două numere de 32 de biţi în registre în felul următor:

- primul număr 11223344 în AX (octeţii superiori) şi BX (octeţii inferiori)

- al doilea număr 55667788 în CX (octeţii superiori) şi DX (octeţii inferiori) În

continuare se va efectua adunarea celor două numere. Rezultatul trebuie să fie 6688AACC

P 8.12 Acelaşi program ca la 8.11, numerele fiind 55667788 şi 99AABBCC. Rezulatul

trebuie să fie EF113354.

P 8.13 Acelaşi program ca la 8.11 dar, numerele fiind 55667788 şi 11223344, se va

efectua scăderea lor. Rezultatul trebuie să fie 44444444.

P 8.14 Acelaşi program ca la 8.13, numerele fiind 22334455 şi 66778899. Rezultatul

trebuie să fie BBBBBBBC.

Page 40: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

40

Page 41: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

41

Laborator 9. PRELUCRAREA INFORMAŢIEI ÎNTR-O

UNITATE ARITMETICO-LOGICĂ (ALU)

9.1. Descrierea modului de funcţionare a ALU

Unitatea Aritmetico-Logică (ALU) efectuează operaţii cu operanzi (date de intrare).

Principalele funcţii realizate de Unitatea Aritmetico-Logică (ALU) sunt:

– operaţii aritmetice şi logice cu operanzi de intrare codificaţi pe n biţi. Valoarea lui n este

egală de obicei cu numărul de biţi ai magistralei interne de date a procesorului;

– furnizează indicaţii privind transportul, împrumutul sau alte caracteristici privind

rezultatul operaţiilor efectuate, prin intermediul unor valori binare numite indicatori de

condiţii.

În figura 9.1 este prezentată schema bloc a unei ALU [18]

Figura 9.1. Schema bloc a unei ALU.

În figură sunt reprezentate:

– două intrări de câte n biţi care reprezintă cei doi operanzi cu care lucrează ALU:

i) operandul din stânga, Left, codificat Ln – 1 … L0;

ii) operandul din dreapta, Right, codificat Rn – 1 … R0.

– o intrare pentru specificarea operaţiei aritmetico-logice de efectuat între cei doi operanzi,

codificată cu trei biţi, notată în figură cu F2F1F0 (numărul de biţi depinde de setul de funcţii al

ALU);

– ieşirea de n biţi pe care se generează rezultatul Qn – 1 … Q0;

– o serie de biţi cu semnificaţie independentă, numiţi indicatori (flag), ce caracterizează

relaţii între operanzi sau rezultatul operaţiei efectuate; în exemplul din figură au fost

consideraţi următorii indicatori:

CARRY: este un bit care reprezintă deplasarea care apare la operaţiile aritmetice cu

numere întregi pozitive;

EQUAL: indică identitatea celor doi operanzi, Ln – 1 … L0 şi Rn – 1 … R0;

ZERO: semnalizează faptul că rezultatul operaţiei curente, Qn – 1 … Q0, este o configuraţie

binară cu toţi biţii egali cu zero;

SGN: reprezintă valoarea celui mai semnificativ bit, Qn – 1, al rezultatului care, dacă

rezultatul este interpretat ca un număr cu semn, este valoarea semnului (0 pentru plus şi 1

pentru minus);

Page 42: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

42

PAR: reprezintă cel mai puţin semnificativ bit al rezultatului care, dacă rezultatul este

interpretat ca număr întreg, reprezintă paritatea numărului (0 pentru număr par şi 1 pentru

număr impar);

OVF: reprezintă depăşirea capacităţii de reprezentare a numerelor întregi (cu numerele

negative reprezentate prin complementul faţă de 2); este un fel de Carry pentru numerele

întregi cu semn.

Setul de funcţii al ALU pentru exemplul din figura 6.2 este limitat la următoarele:

AND: Qi = Li×Ri, pentru i = 0,1, … (n – 1);

OR: Qi= Li + Ri, pentru i = 0,1, … (n – 1);

XOR: Qi= Li Ri, pentru i = 0,1, … (n – 1);

ADD: adună modulo 2n cei doi operanzi (două numere întregi);

SUB: scade modulo 2n cei doi operanzi (două numere întregi);

INC: incrementează modulo 2n operandul din stânga;

LEFT: ieşirea ia valoarea operandului din stânga;

SHL: reprezintă deplasarea logică cu o poziţie la dreapta a operandului din stânga

(cel mai puţin semnificativ bit se pierde).

ALU uzuale realizează şi alte funcţii, de exemplu decrementarea (DEC), rotirea (ROT),

NOT etc.

9.2. Structura ALU

O unitate aritmetico-logică conţine blocuri formate din circuite logice de tipul celor

porţilor logice, codificatoare, decodificatoare, multiplexoare, demultiplexoare, sumatoare,

multiplicatoare, registre de deplasare pentru realizarea operaţiilor de deplasare înainte şi

înapoi – Carry out sau Carry in, circuite tampon etc. Registrele locale sunt folosite ca

memorie de mare viteză dar şi pentru efectuarea unor operaţii aritmetice şi logice.

În funcţie de performanţele dorite pentru ALU, de restricţiile tehnologice şi de opţiunile

proiectantului, pot fi concepute organizări distincte pentru ALU, cum sunt de exemplu cele

prezentate în figurile 9.2 şi 9.3 [18].

În figura 9.2 este reprezentată structura internă a unei unităţi aritmetico-logice, unde:

– L reprezintă operandul din stânga de n biţi;

– R reprezintă operandul din dreapta de n biţi;

– F2F1F0 este codul operaţiei efectuate de ALU;

– Q este ieşirea de n biţi a ALU pe care se generează rezultatul operaţiei F2F1F0 asupra

celor doi operanzi; ea reprezintă ieşirile celor n MUX3 care selectează ieşirile circuitelor

anterioare ce realizează operaţia dorită, selectată prin codul F2F1F0;

– P sunt cele n semnale propagate, Pi, calculate cu cele n circuite OR;

– G sunt cele n semnale generate, Gi, calculate cu cele n circuite AND;

– C reprezintă cele n semnale de transport, Ci, calcul generate de blocul CTA (circuitul de

Calcul al Transportului Anticipat) pornind de la semnalele P şi G;

XOR sunt ieşirile celor n circuite XOR, ieşiri folosite şi în blocul de test, TEST, pentru

calculul condiţiei de EQUAL cât şi în blocul circuitelor aritmetice, CA, pentru calculul

funcţiilor ADD, SUB şi INC.

Page 43: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

43

Figura 9.2. Organizarea internă a unei ALU.

Organizarea internă a blocului CTA depinde de opţiunea pentru viteza

de execuţie a funcţiilor numerice. Blocul TEST este realizat din două circuite OR.

O unitate aritmetico-logică din procesor este realizată din astfel de blocuri funcţionale ca cel

din figura 9.3, aranjate pe orizontală, pe nivele logice.

Figura 9.3. Modul de un bit dintr-o ALU – ALUE.

O altă variantă de unitate aritmetico-logică poate fi realizată din aranjarea pe verticală de

unităţi aritmetico-logice elementare (ALUE) care operează cu cuvinte de un singur bit, ca cea

prezentată în figura 9.3.

Circuitul ALUE poate fi gândit ca o felie (slice) de ALU.

Semnificaţia codurilor de comandă pentru ALUE este dată în tabelul 9.1.

Tabelul 9.1. Tabelul funcţiilor realizate de ALUE

F2F1F0 Mnemonică Semnificaţia

000 AND Funcţia AND bit cu bit

001 OR Funcţia OR bit cu bit

010 SHL Deplasarea operandului L la dreapta, cu o

poziţie

Page 44: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

44

011 LEFT Trece operandul L

100 XOR Funcţia XOR bit cu bit

101 ADD Adunarea operanzilor

110 SUB Scăderea operandului R din operandul L

111 INC Incrementarea operandului L

Pentru i = n – 1, intrarea Li + 1 = 0, iar pentru i = 0 intrarea de transport este C0 = F1F0.

Rolul fiecărui circuit din componenţa ALUE este următorul:

– poarta AND realizează funcţia logică Li×Rişi calculează Gi pentru a fi generat către

circuitul de transport anticipat (prin MUX2 codul F1F0 = 00 selectează valoarea lui Ri);

– poarta OR realizează funcţia logică Li + Rişi calculează produse parţiale Pi pentru a fi

generate către circuitul de transport anticipat, aşa cum am prezentat în capitolul 3, paragrafele

3.9 şi 3.10;

– poarta XOR conectată la intrarea 4 a MUX3 realizează funcţia logică Li Ri şi calculează

suma modulo 2 dintre operanzii implicaţi în operaţiile de tip aritmetic (adunare, scădere şi

incrementare);

– poarta XOR conectată la intrările 5, 6 şi 7 a MUX3 calculează suma modulo 2 cu bitul de

transport recepţionat de la circuitul de generate a transportului anticipat;

– MUX2 selectează ca operand pe Ripentru operaţiile logice binare şi pentru adunare, pe

iR pentru scădere şi pe 0 pentru increment;

– MUX3 are rolul de a selecta la ieşirea Qi una din funcţiile calculate pe nivelul anterior.

Codificarea funcţiilor prezentată în tabelul 9.1 a fost făcută astfel încât să permită aplicarea

biţilor de selecţie direct la intrarea ambelor multiplexoare. S-a evitat astfel utilizarea unor

circuite random de transcodare pe intrările de selecţie ale MUX2.

Ordinul de mărime al dimensiunii structurii ALU formată din n ALUE, circuitul TEST şi

CTA este determinată de circuitul CTA iar viteza de execuţie a operaţiilor este dată tot de

lungimea căii de transport (CTA).

Indicatorii de condiţii sunt poziţionaţi de unitatea de prelucrare în conformitate cu

evenimentele ce s-au produs la efectuarea operaţiei comandate anterior pentru ALU. Aceşti

indicatori (numiţi şi fanioane, flag) sunt memoraţi de obicei în circuite basculante bistabile,

componente ale Registrelor indicatoare, registre interne CPU. Indicatorii de condiţii pot

reprezenta, de exemplu, semnul rezultatului, rezultat zero, paritatea etc.

Intrările în CPU sunt comenzi interne procesorului, comenzi generate de UC şi trimise

către ALU. Conform acestor comenzi ALU va prelucra datele de la intrare şi va furniza datele

la ieşire (registre interne sau externe).

9.3. Realizarea în Circuit Maker a unei unități ALU pe 4 biți

Circuitul integrat SN54/74LS181 reprezintă o unitate aritmetico-logică pe 4 biți, care poate

efectua toate cele 16 operații logice posibile, utilizând două variabile, precum și o varietate de

operații aritmetice.

Oferă 16 operații de adunare, scădere, comparare, dublare și în plus alte 12 operații

aritmetice;

Page 45: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

45

Suportă toate cele 16 operații logice cu două variabile: SAU-exclusiv (XOR),

comparare, ȘI (AND), ȘI-negat (NAND), SAU (OR), SAU-negat (NOR), precum și

alte 10 operații logice.

Figura 9.4 – Circuitul integrat ALU 4 biți (SN54/74LS181) și semnifacția pinilor

În figura 9.4 se prezintă circuitul integrat cu semnificația pinilor de conexiune, iar în figura

9.5 avem diagrama logică a cicuitului ALU pe 4 biți.

Figura 9.5 – Diagrama logică a unității ALU pe 4 biți (circuit SN54/74LS181)

9.4. Teme de lucru:

Să se realizeze în programul Circuit Maker un circuit care să simuleze această unitate ALU pe

4 biți, conform reprezentării din figura 9.6.

Page 46: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

46

Figura 9.6 – Realizarea unui circuitului echvalent unității ALU pe 4 biți

După realizarea circuitului, se poate verifica funcționarea și corectitudinea operațiilor unității ALU

pe 4 biți conform tabelului de funcții logice de mai jos:

Tabel funcții logice ALU 4 biți (circuit SN54/74LS181)

Page 47: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

47

Laborator 10. FUNCŢIONAREA UNITĂŢILOR DE MEMORARE

ÎNTR-UN CALCULATOR. TRANSFERURI DE DATE

ŞI OPERAŢII ARITMETICE CU MEMORIA

10.1. Segmentarea memoriei

În figura 10.1 se prezintă segmentarea memoriei RAM dintr-un sistem de calcul, procedeu care

ajută la adresarea corectă și rapidă a tuturor locațiilor de memorie. Memoria este astfel împărțită

(segmentată) în segmente de 64 KB, adică 65535 locații de memorie de 1 octet (byte), având adrese de

la 0000 (cea mai de jos) și până la valoarea hexazecimală FFFF (adică 65535 în baza zecimală, adresa

cea mai de sus).

Figura 10.1 – Principiul segmentării memorie RAM la arhitectura x86

Adresa logică se calculează după formula:

AL = AS*16 +AE

unde:

AL este adresa logică (coincide cu adresa fizică, transmisă pe magistrala de adrese, dacă nu se

foloseşte paginarea).

AS este adresa de segment, conţinută în unul din următoarele registre:

-CS pentru segmente de coduri de instrucţiuni

-DS pentru segmente de date

-SS pentru segmente de stivă

-ES pentru extrasegmente

Iar adresa bazei segmentului este obtinută prin deplasarea cu 4 biţi spre stanga a adresei de segment

(inmulţire cu 16):

ABS=16*AS

Convenţii :

Page 48: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

48

Orice operand pus între paranteze drepte reprezintă o adresa de memorie . De exemplu

[3A21] reprezintă conţinutul locaţiei de memorie cu adresa efectivă 3A21, iar [BX+DI] reprezintă

conţinutul locaţiei de memorie a carei adresa efectivă este dată de suma între registrele BX şi DI.

Este permisă şi scrierea RG[const] cau const[RG] unde RG este un registru general iar const

este un deplasament (număr sau etichetă ) care se adună la conţinutul acestui registru. Acestă forma

este echivalentă cu [RG+const], deci scrierea de termeni alaturaţi are semnificaţie de sumare şi nu de

înmulţire.

10.2. Programul de emulare emu8086

EMU8086 este un emulator pentrumicroprocesoarele 8086 (compatibil Intel şi AMD)

având integrat programul deconversie în cod maşină, asamblorul. Acest emulatorul rulează

programele scrise decătre utilizator exact ca un microprocesor real, în modul pas cu pas

pentru observareaefectului fiecărei instrucţiuni.Acest lucru se este posibil deoarece acest

program prezintă conţinutul regiştrilormicroprocesorului, a memorie, a stivei, valoarea

variabilelor precum şi starea indicatorilor de condiții (fanioanelor). Instrucţiunile programului

pot fi executate pas cu pas în mod normal darexistă posibilitatea de execuţie şi în sens invers.

Figura 10.2 – Programul de emulare EMU8086

În fereastra principală(fig. 10.2) se va edita programul utilizând instrucţiunile

specificeprogramării în cod maşină. După terminarea editării codului sursă a programului se

vada comanda de compilare pentru verificarea corectitudinii programului (fig. 10.3).Dacă

sunt probleme softul va specificaîn fereastra de compilare erorile găsiteşi tipul acestora pentru

depanarea lor. Încaz de succes se va cere salvareaprogramului şi apoi se poate da înexecuţie

aplicaţia de emulare cu ajutorul

butonului din fereastra programuluisau butonul dreapta jos din fereastra decompilare.La

emulare se vor deschideautomat două ferestre: fereastra coduluiprogramului şi fereastra de

emulare acodului, astfel încât să se poată urmăriipas cu pas efectul fiecărei instrucţiuni.

Page 49: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

49

Pentru a avea acces la vizualizarea segmentelor de memorie în timpul execuției și

depanării, se vor alege opțiunile corespunzătoare din meniul VIEW.

Figura 10.3 – Ferestrele de execuție/depanare cod assembler în EMU8086

10.3. Teme de studiu

Să se scrie și să se asambleze următorul exemplu de cod utilizând programul

EMU8086.

MOV CL,BX[10h] ; Încarcă în CL conţinutul ;locaţiei de memorie a carei adresa

efectivă este suma ;între conţinutul lui BX şi constanta 10h, iar adresa de ;segment este

conţinută în DS.

Instrucţiunea este echivalentă cu forma MOV CL, 10h[BX].

În mod normal, programatorul va specifică numai adresa efectivă, dar în cazuri

speciale se poate folosi totuşi şi adresa fizică, prin specificarea şi a adresei de segment, cu

sintaxa:

AF=AS:AE

Exemplu:

MOV AH,DS:[20h] ;Transferă în AH conţinutul

;locaţiei 20h din segmentul a cărui

;adresă este conţinută în registrul DS

MOV SS:[BX+10h], CL ;Transferă conţinutul lui CL

;în locaţia a carei adresa efectivă este

;dată de conţinutul lui BX adunat cu 10h,

;din segmentul a cărui adresă este

;conţinută în SS.

Page 50: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

50

Modul de lucru:

Se va scrie şi se va testa un program care efectueaza următoarele:

• Încarcă constanta 22h în registrul AL

• Trimite această constantă în memorie la adresa BX[20] şi la adresa DS:30

Indicaţii:

Ambele locaţii sunt plasate în segmentul de date şi se pot vizualiza în zona Dump din

fereastra inferioară a Turbo Debugger.

Page 51: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

51

Laborator 11. TRANSFERURI PE 1 OCTET ŞI PE 2 OCTEŢI

11.1. Tipuri de registrele de segment

În funcţie de registrele generale folosite în formarea unei adrese, registrele de segment

sunt registre generale şi registre de segment implicite şi sunt prezentate în tabelul de mai jos.

Registru

general Registru de segment implicit

SP SS

BP SS

BX DS

SI DS

DI ES

BP+SI sau BP+DI SS

BX+SI sau BX+DI DS

IP CS

Trebuie să se ţină seama în permanenţă de regulile registrelor de segment implicite

deoarece asamblorul nu poate semnala erori în cazul utilizarii lor incorecte.

O locaţie de memorie are prin convenţie un octet, astfel că ea poate fi operand numai

pentru un registru de 8 biţi. În cazul în care se fac transferuri cu registre de 2 octeţi se

utilizează următoarea convenţie ("little-endian"): la adresa specificată se află octetul inferior

al registrului dublu, iar la adresa imediat următoare octetul superior.

Specificarea lungimii operandului (1 octet sau 2 octeţi) este sau implicită sau declarată

cu prefixele BYTE PTR repectiv WORD PTR .

Exemplu:

MOV AL, [BX+3000] transferă numai în AL octetul de la adresa 3000 din

segmentul de date. Nu este nevoie de prefix deoarece operandul AL este de 8 biţi şi rezulta

implicit un transfer de un octet.

MOV AX, [SI+3000] transferă în AL octetul de la adresa 3000 din segmentul de

date şi în AH octetul de la adresa 3001 din segmentul de date (întotdeauna în octetul superior

conţinutul locaţiei de memorie cu adresa mai mare). Nu este nevoie de prefix deoarece

operandul AX este de 16 biţi şi rezultă implicit un transfer de doi octeţi.

ADD word ptr [BX+3000],59 adună la cuvântul (număr de 16 biţi) conţinut în

locaţiile 3001 şi 3000 din segmentul de date, numărul 59. Dacă nu s-ar specifică lungimea

"word ptr", s-ar face adunarea pe un singur octet între conţinutul locaţiei 3000 şi constanta 59.

ADD byte ptr [BP+3000],59 adună la octetul conţinut în locaţia 3000 din

segmentul de stivă, numărul 59, fără vreo influenta asupra locaţiei 3001. Dacă nu s-ar

specifica lungimea, operaţia s-ar efectua tot pe un octet, dar asamblorul ar afişa totuşi o

avertizare legată de lungimea operanzilor.

Page 52: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

52

11.2.Modul de lucru :

Se vor scrie şi testa următoarele programe, folosindu-se pe cat posibil numai adrese

efective:

P 1 Program care încarcă în AX constanta 3344 şi o trimite în memorie la adresa 20h.

Se va observă în ce fel apar octeţii acestei constante în memorie.

P 2 Trimite în memorie la adresa 20 constanta 1122 şi la 30 constanta 44

P 3. Program care:

încarcă constanta 33EE în AX

o trimite în memorie la adresa 30

încarcă constanta 22 în AL

adună această constantă la numărul din locaţiile încarcate anterior cu constanta

33EE.

Indicaţii:

Pentru a avea rezultatul adunării pe 16 biţi, va trebui folosit registrul AX, după ce se

încarcă AH cu 00.

În memorie, la adresa DS:30 vor apare octeţii 10.34, adică numărul 3410, rezultatul

adunării lui 33EE cu 22.

4. Program care trimite în memorie la adresa 10 din segmentul de date suma

constantelor 44 şi 122, fără să se specifice explicit registrul de segment.

Indicaţii:

Rezultatul, la adresa 10 trebuie să apară sub forma 66.01.

5. Acelasi program ca la punctul.3 dar se vor folosi adrese logice, fără a implica alte

registre generale (se presupune ca nu trebuie modificat conţinutul acestora).

Indicaţii:

Va fi necesar să se specifice explicit registrul de segment.

Page 53: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

53

Laborator 12. MODURI DE ADRESARE

În funcţie de termenii folosiţi în formula generală a adresei efective, se definesc

următoarele moduri de adresare:

12.1 Adresare imediată la memorie:

Se specifică în adresa efectivă numai deplasamentul, care constituie chiar adresa

efectivă. Conform observaţiei de la paragraful 3.2, este necesar să se specifice şi registrul de

segment, deci se va scrie de fapt o adresa logică.

Exemplu:

MOV AX,DS:[54] ;Încarcă în AL conţinutul locaţiei cu adresa efectivă 54

din segmentul de date, iar în AH conţinutul locaţiei următoare

MOV ES:[3AC2],DL ;Încarcă în locaţia cu adresa efectivă 3AC2 din

extrasegment conţinutul registrului de 8 biţi DL

Adresa efectivă poate fi specificată şi printr-o etichetă (în paranteze drepte şi cu

specificarea unui segment sau a unui registru general) care a fost declarată anterior.

Declararea unei etichete se face cu una din variantele:

eticheta EQU număr

eticheta EQU şir

eticheta = număr

Dacă se foloseşte forma cu EQU, se admite pentru asignare şi un şir de caractere, în

schimb nu se mai poate face altă asignare ulterioară în program. Forma cu = admite

reasignări, dar nu permite asignarea cu şiruri.

Exemplu:

adresa1 equ 20h

adresa2 equ adresa1+2

adresa3=30h

.

.

mov AL,DS:[adresa1] ; Încarcă în AL continutul

;locaţiei de memorie de la adresa 20h

;din cadrul segmentului de date

mov SI[adresa2],ch ;Încarcă CH în adresa 22h

;din cadrul segmentului de date

mov AH,[BP+adresa3] ;Încarcă în AH de la

;adresa 30h din cadrul segmentului de

;stivă

Page 54: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

54

12.2 Adresarea directă

În caz că se utilizează numele unei locaţii declarate în cadrul segmentului de date, nu

mai sunt necesare parantezele drepte şi un alt registru. Adresa de segment este conţinută

implicit în DS, dacă nu se specifică altfel.

Aceasta formă este posibilă pentru segmentul de date, care poate fi declarat în partea

iniţială a programului, fără ca programatorul să se preocupe de plasarea sa exactă în memorie.

Se utilizează directive de rezervare a unor locaţii de memorie, DB, DW, etc. care vor fi

prezentate pe larg mai târziu. Adresa va fi calculată automat de asamblor şi înlocuită în

instrucţiune cu valoarea numerică corespunzătoare.

Exemplu:

.model small

.stack 100h

.DATA

locaţie db 33,44,55,66 ;Stabileşte adresa

;"locaţie" la începutul

;segmentului de date

.code

MOV AX,@data ;Încarcă adresa segmentului de date

MOV DS,AX ;în registrul DS

MOV AL,locatie+2 ;Încarcă în AL octetul de la a

;locaţia 02 din DS

MOV locatie+1, byte ptr AL ;Încarcă în locaţia 01

;conţinutul lui AL

.

.

.

Se observă că nu este necesară punerea operandului de adresa în paranteze, prin

eticheta declarată după directiva .DATA înţelegându-se implicit conţinutul unei locaţii de

memorie.

Observaţie: Instrucţiunile care urmează imediat după directiva .code din exemplul de

mai sus ( cele cu caractere bold) sunt necesare întotdeauna atunci când se declară un segment

de date. Asamblorul şi linkeditorul plasează acest segment acolo unde au memorie liberă şi

adresa acestui segment trebuie incărcată explicit în registrul de segment de date, DS. Cum

acest registru nu admite o încărcare directă cu o constantă, această adresă, cunoscută de

asamblor prin simbolul @dată se încarcă întâi într-un registru general şi apoi se transferă în

registrul DS. Se poate folosi şi forma de referire la o variabilă sau constantă din segmentul de

date (forma nerecomandată totuşi în astfel de cazuri):

MOV AX, seg locaţie

Page 55: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

55

Programul Turbo Debugger, dacă are implicit afişata o fereastra Dump, după rularea

instrucţiunii MOV DS,AX va afişa automat zona respectivă cu registrul de segment ES.

Pentru a afişa chiar segmentul de date, trebuie dată o noua comanda Dump din submeniul

View, atunci când fereastra CPU este activata (dacă nu este, se da un click pe aceasta

fereastra). În noua fereastra dump se vor observa datele declarate.

12.3 Adresare indirectă la memorie prin registru

Se specifică în instrucţiune registrul din care se va lua adresa efectivă. După cum

rezulta din formula, registrul este unul din următoarele: BX,BP,SI,DI.

Exemplu:

MOV AL, [BX] ;Încarcă în AL conţinutul ;locaţiei de memorie a carei

adresa efectivă este ;conţinută în BX şi adresa de segment conţinută în ;registrul implicit DS.

MOV [BP],CX ;Încarcă conţinutul lui CL în ;locaţia de memorie a carei

adresa efectivă este ;conţinută în BP şi adresa de segment conţinută în ;registrul implicit SS,

iar conţinutul lui CH în locaţia ;de memorie următoare.

Dacă nu se specifică în adresa şi un registru de segment, acesta va fi cel implicit,

specificat de tabelul amintit mai sus.

12.4 Adresare indirectă la memorie prin registru cu deplasare

Adresa efectivă este dată de suma registrului şi deplasamentului specificate de

instrucţiune. Adresa de segment va fi dată de DS, cu excepţia cazului în care se utilizeaza

registrul BP, caz în care adresa de segment este dată de SS.

Exemplu:

MOV AL,[DI+31] ; Transferă în AL conţinutul locaţiei a carei adresa este dată de

conţinutul lui DI la care se adună 31, iar adresa de segment este dată de DS.

MOV [BP+1226],CX; Transferă pe CL în locaţia a carei adresa este dată de

conţinutul lui BP la care se aduna 1226, iar adresa de segment este dată de SS, iar CH în

locaţia următoare.

Aceste instrucţiuni se mai pot scrie şi :

MOV AL,31[DI] respectiv

MOV 1226[BP],CX

Modul de adresare prin registru cu deplasare se recomandă pentru adresarea

elementelor şirurilor şi tabelelor. De exemplu, dacă s-a definit anterior constanta numerică

TAB ( de exemplu TAB EQU 2100) se poate adresa elementul de tabel cu numărul conţinut

în registrul SI printr-o instrucţiune de genul ADD BX, TAB[SI].

12.5 Adresare indirectă la memorie prin 2 registre

Adresa efectivă este dată de suma a două registre specificate de instrucţiune (una din

cele 4 variante posibile conform expresiei generale).

Registrul de segment implicit este DS cu exceptia cazului când este menţionat BP, în

care caz segmentul este cel de stivă, cu adresa conţinută în SS.

Page 56: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

56

Modul de adresare prin registru cu deplasare se recomandă pentru adresarea

elementelor şirurilor şi tabelelor. De exemplu, dacă s-a incărcat anterior constanta numerică

TAB într-un registru de baza ( de exemplu MOV BX,2100) se poate adresa elementul de

tabel cu numărul conţinut în registrul SI printr-o instrucţiune de genul MOV CX,[BX+SI].

Exemplu:

MOV CL,[BP+SI] sau MOV CL,[BP][SI]

SBB DX,[BX+DI] sau SBB DX,[BX][DI]

12.6 Adresare indirectă la memorie prin 2 registre cu deplasare.

Adresa efectivă este dată de suma a două registre şi un deplasament, toate elementele

fiind specificate de instrucţiune.

Registrul de segment implicit este DS cu exceptia cazului când este menţionat BP, în care

caz segmentul este cel de stivă, cu adresa conţinută în SS.

Exemplul:

MOV CX,[BX+SI+2C]

SUB DX,[BP+SI+2455]

Modul de adresare prin 2 registre cu deplasare se recomandă pentru adresarea

elementelor matricilor. De exemplu, dacă s-a definit anterior constanta numerică MAT ( de

exemplu 2100) iar BP conţine numărul unei linii înmulţit cu numărul total de coloane se poate

adresa elementul din linia respectivă având indicele (numărul de coloană) conţinut în registrul

SI, printr-o instrucţiune de genul:

ADD BX,MAT[BP][SI] ;echivalentă cu

ADD BX,[BP+SI+2100]

De exemplu, pentru o matrice cu 5 linii şi 6 coloane, care începe la adresa 20h, dacă se

doreşte accesarea elememtului al treilea din linia a patra, vom scrie:

MAT=20h

MOV BX, 18

MOV SI,3

MOV CL, MAT[BX+SI]

12.3Modul de lucru

P1. Se va realiza un program care să execute prin adresări imediate următoarele

operaţii:

În CH se va citi (transferă) de la adresa 10 din memoria de date

În DX se va citi de la adresa 11

Se va scrie la adresa 20 constanta 22

Se va scrie la adresa 21 constanta 8877

Page 57: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

57

Se va scrie la adresa 30 conţinutul lui CH

Se va scrie la adresa 31 conţinutul lui DX

P2.Se va realiza un program care are următoarele date iniţiale: constantele de un octet

A=11 şi B=22 şi constantele de doi octeţi C=3344 şi D=5566.Se va calcula in BX expresia

(C+D)-(A+B).

P 3.Se vor încarca registrele în felul următor: AX=2233, CX= 99AA, DL=10 BX=20.

Suma dintre AX şi CX se va trimite în memorie la adresa formată din suma între BX şi DL iar

diferenta lor la adresa imediat următoare.

Indicaţii:

- AX trebuie salvat înainte de sumare;

-DL nu poate fi adunat direct cu BX şi nici nu poate fi folosit la formarea AE.

-În memorie, la adresa DS:0030 va apare şirul: DD.BB.89.88

P 4.Se vor încarca registrele în felul următor: AX=1122, BX= 3344, CX=5566 şi

DX=7788. Sa se facă permutarea ciculară a acestor registre (AX ia valoarea lui BX, BX a lui

CX, CX a lui DX iar DX a lui AX). Se vor folosi pentru stocarea temporară în memorie a

unui registru modul imediat, modul direct şi modul indirect.

P 5.Folosind instruncţiunea de adunare a unui registru cu o constantă, se vor încarcă 4

locaţii succesive de memorie începând de la 10, cu numere crescătoare de un octet, începând

cu 1.

P 6. Acelasi program ca la punctul.5, dar cu numere pe doi octeţi începând cu 1000.

P 7. Acelasi program ca la punctul 5, dar cu numere pe un octet multipli de 5.

Page 58: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

58

Page 59: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

59

Bibliografie

1. BAICU, Floarea, Complemente de microelectronică, Editura Enciclopedică, Bucureşti 2007

2. BAICU, Floarea, Arhitectura calculatoarelor, Editura Universitară Bucureşti 2014

3. BAICU, Floarea, BAICU Liviu-Gabriel Sisteme de operare, Editura Printech, Bucureşti 2013

4. BAICU, Floarea, Complemente de electronică – Îndrumar de aplicaţii virtuale, Editura Victor,

Bucureşti, 2005

5. BAICU, Floarea, BAICU Liviu-Gabriel, Memoria adresabilă prin conţinut (CAM). Arhitectură

şi avantaje, Analele Universităţii Hyperion din Bucureşti, Electronică şi Calculatoare, Editura Victor,

Bucureşti 2013

6. BAICU, Floarea, Porţi logice virtuale, Analele Universităţii Hyperion din Bucureşti,

Electronică şi Calculatoare, Editura Victor, Bucureşti, 2006

7. BARUCH, Zoltan Francisc, Arhitectura Calculatoarelor Universitatea Tehnică din Cluj-

Napoca

8. GHEORGHIU, Anca, SPÂNULESCU, I., Programarea calculatoarelor electronice, Editura

Victor, Bucureşti, 2003

9. GORGAN, D., SEBESTYEN, G., Structura calculatoarelor, Editura Albastră, 2000

10. GRAY, P. R., MEYER, R., Circuite integrate analogice – Analiză şi proiectare, traducere în

limba română, Editura Tehnică, Bucureşti, 1997

11. POSDĂRESCU, E., Analiza şi sinteza dispozitivelor şi circuitelor numerice, Editura

MatrixRom, Bucureşti, 2009

12. OROS, Horea, Arhitectura Sistemelor de Calcul, Universitatea din Oradea - Facultatea de

Ştiinţe, 2009

13. ROMÂNCĂ, Mihai, SZEKELY, Gyula, Calculatoare Arhitectură şi organizare, 2004, Editura

Universităţii Transilvania, Braşov, 2004

14. Kostas PAGIAMTZIS, Ali SHEIKHOLESLAMI, Content-Adessable Memory Circuits and

Arhitectures: A Tutorial and Survey, IEEE Journal of Solid State Circuits, vol 41, no3, march 2006

15. SPÂNULESCU, I., SPÂNULESCU, S. I., Circuite integrate digitale şi sisteme cu

microprocesoare, Editura Victor, Bucureşti, 2002

16. SPÂNULESCU, S.I., Programarea in limbaj de asamblare a microprocesoarelor, Editura

Victor, Bucureşti, 2004, 237 pag

17. William STALLINGS, Operating Systems (4th edition), Prentice-Hall 2001

18. ŞTEFAN, Gh., Circuite şi sisteme digitale, Editura Tehnică, Bucureşti, 2000

19. TANENBAUM Andrew, Organizarea structurată a calculatoarelor, Editura Agora, 1999

20. Andrew S. TANENBAUM, Modern Operating Systems, 3rd ed., Prentice-Hall, Inc., 2008,

http://www.cs.vu.nl/~ast

21. Von NEUMANN John, First Draft of EDVAC, 30 iunie 1945,

http://www.virtualtravelog.net/wp/wp-content/media/2003-08-TheFirstDraft.pdf

22. VLADIMIRESCU, A., SPICE, traducere în limba română, Editura Tehnică, Bucureşti, 1999

23. ZOTA R., D., Introducere în limbaje de asamblare, http://ase.ro/bti

24. WAKERLY, J., Circuite digitale – Principiile şi practicile folosite în proiectare, traducere în

limba română, Editura Teora, Bucureşti, 2002

25. http://en.wikipedia.org/wiki/Computer_architecture

26. http://history-computer.com/MechanicalCalculators/Pioneers/Pascal.html

27. http://en.wikipedia.org/wiki/Charles_Babbagethomson

28. http://en.wikipedia.org/wiki/William_Thomson,_1st_Baron_Kelvin

29. http://en.wikipedia.org/wiki/Enigma_machine

30. http://www.codesandciphers.org.uk/lorenz/

31. http://en.wikipedia.org/wiki/File:COLOSSUS

Page 60: ARHITECTURA CALCULATOARELOR - …informatica.hyperion.ro/wp-content/...ARHITECTURA-CALCULATOARE… · sever spÂnulescu floarea baicu eugen cornel arhitectura calculatoarelor indrumar

60

32. http://en.wikipedia.org/wiki/Konrad_Zuse

33. http://en.wikipedia.org/wiki/ENIAC

34. http://www.archives.upenn.edu/faids/upd/eniactrial/upd8_10.html

35. http://en.wikipedia.org/wiki/John_von_Neumann

36. http://inventors.about.com/od/computersandinternet/a/Eckert-And-Mauchly.htm

37. http://en.wikipedia.org/wiki/Von_Neumann_architecture

38. http://en.wikipedia.org/wiki/Harvard_architecture

39. http://en.wikipedia.org/wiki/Computer_Modern

40. http://en.wikipedia.org/wiki/Quantum_computer

41. http://www.livescience.com/20718-computer-history.html

42. http://en.wikipedia.org/wiki/Shor%27s_algorithm

43. http://en.wikipedia.org/wiki/IEEE_floating_point

44. http://cs.ucv.ro/staff/cpatrascu/SIE/Lucrarea%203.pdf

45. http://ro.wikipedia.org/wiki/UNICODE

46. https://www.Lookup.Tables.com

47. https://www.google.ro/search?q=ebcdic+table&source=lnms&tbm=isch&s.

48. http://steve.hollasch.net/cgindex/coding/ieeefloat.html

49. http://ro.wikipedia.org/wiki/Baz%C4%83_de_numera%C8%9Bie

50. http://ro.wikipedia.org/wiki/Sistem_binar

51. http://www.scribd.com/doc/93164759/Circuit-Maker-2000-User-Manual CircuitMaker-

Integrated Schematic Capture and Circuit Simulation Copyright © 1988-1998 MicroCode

Engineering, Inc.

52. http://en.wikipedia.org/w/index.php?title=Computer_memory&oldid=477489497

53. http://en.wikipedia.org/wiki/File virtual_memory.sv

54. http://en.wikipedia.org/wiki/Content-addressable_memory

55. http://en.wikipedia.org/wiki/hard_drive_en.svg

56. http://en.wikipedia.org/wiki/Seagate_Technology#2010s

57. http://en.wikipedia.org/wiki/Solid_state_drive

58. http://en.wikipedia.org/wiki/Flash_memory

59. http://en.wikipedia.org/wiki/File:2bit_ALU.svg

60. http://en.wikipedia.org/wiki/Central_processing_unit

61. http://en.wikipedia.org/wiki/File:Computer_system_bus.svg

62. http://en.wikipedia.org/wiki/Interrupt

63. http://support.amd.com/en-us/search/tech-docs

64. http://support.amd.com/TechDocs/52259_KB_G-Series_Product_Data_

Sheet.pdf

65. INTEL, Reliability Report, RR, martie, 2007

66. INTEL 486 TM-DX Microprocessor, 1990

67. http://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures

68. http://en.wikipedia.org/wiki/File:Intel_Core2_arch.svg

69. http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-

architectures-software-developer-manual-325462.pdf

70. Instruction Set Reference A-M, Order Number 253666;

71. http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/

72. http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2008/10/

24594_APM_v3.pdf

73.http://biblioteca.regielive.ro/arhitectura-calculatoarelor


Recommended