Sunteți pe pagina 1din 60

Sever SPNULESCU

Floarea BAICU Eugen CORNEL

ARHITECTURA
CALCULATOARELOR

INDRUMAR de LABORATOR
2
CUPRINS

Laborator 1. PREZENTAREA CALCULATORULUI I PRINCIPIUL DE FUNCIONARE ........... 5

Laborator 2. REPREZENTAREA NUMERELOR N VIRGUL FIX I N VIRGUL MOBIL.


OPERAII 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 INFORMAIEI NTR-O UNITATE ARITMETICO-LOGIC ...... 41

Laborator 10. FUNCIONAREA UNITILOR DE MEMORARE NTR-UN CALCULATOR


TRANSFERURI DE DATE I OPERAII ARITMETICE CU MEMORIA ...................................... 47

Laborator 11. TRANSFERURI PE 1 OCTET I PE 2 OCTEI ......................................................... 51

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

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

3
4
Laborator 1. PREZENTAREA CALCULATORULUI
I PRINCIPIUL DE FUNCIONARE

Orice calculator electronic actual este format din subsisteme inconectate ntre ele, care,
orict de evoluate ar fi, corespund modelului original Von Neumann. Acest model a rezultat
din faptul c un calculator trebuie s conin 5 componente care s corespund celor 5 principii
prezentate mai anterior:
1. un mediu de intrare care s asigure preluarea datelor i instruciunilor;
2. un mediu de memorare n care s fie stocate datele i programul aferent din care s se
citeasc operanzi i instruciuni i n care s se poat introduce, n ordinea dorit, rezultatele;
3. un mediu de prelucrare care s efectueze operaii aritmetice i logice asupra
operanzilor citii n memorie;
4. un mediu de control capabil s interpreteze instruciunile extrase din memorie i s
controleze procesul de desfurare a operaiilor, n funcie de rezultatele obinute pe parcurs
i
5. un mediu de ieire care s permit extragerea rezultatelor.
Astfel Von Neumann a gndit o structur n 5 uniti funcionale corespunztoare 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 ieire OU (Output Unit).
Aceast structur se mai numete i structura n 5 unitia calculatorului. Unitile 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 uniti a calculatorului.

n figura 1.2 este prezentat mai detaliat aceast structur, cu modul de interconectare al
celor 5 uniti i sunt exemplificate fluxurile de date, informaii, instruciuni i comenzi.

5
Figura 1.2. Structura n 5 uniti a calculatorului.

Interconexiunile din figur corespund urmtoarelor fluxuri:

n mod uzual Unitatea Artimetico-Logic i Unitatea de Control sunt cuprinse n


procesorul computerului CPU iar unitile de intrare i cele de ieire se consider mpreun,
aa c se discut de structura n 3 uniti a calculatorului, prezentat n figura 1.3:
1. Unitatea central de procesare CPU (Central Processing Unit) care conine Unitatea
Aritmetico-Logic, o serie de regitri 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/ieire (I/O Unit) care conine unitile de intrare/ieire.

Figura 1.3. Structura n 3 uniti a calculatorului.

6
Modul de lucru
Identificarea unitilor componente ale calculatorului i prile lor funcionale.
Figura 1.4. Structura funcional pe componente ale unui calculator
CPU Memoria

Aria de registre Unitatea


de Memorie Memorie
comand RAM RAM
Unitatea aritmetic
i control
i logic

Controlere de Intrare/Ieire

Dispozitive I/O

Hard Disk Mouse Dispozitive Alte dispozitive de


Floppy Disk Tastatur de reea instrumentaie,
CD/DVD-ROM Monitor robotic etc.
USB Disk Imprimant

Tem de lucru:
1. Identificai care sunt componentele de baz ale unui calculator, prin scrierea
denumirilor acestora pe o coal de hrtie. Facei o descriere pe scurt a fiecrei
componente.
2. Dndu-se toate componetele necesare, s se asambleze un calculator, urmrind
etapele de mai jos:
a. Se vor plasa componentele calculatorului pe o mas ntins.
b. Mai nti se deschide carcasa i se introduce placa de baz
(motherboard/mainboard), asigurnd-o cu uruburile ei.
c. Se instaleaz microprocesorul (Intel sau AMD) n soclul (socket-ul)
corespunztor de pe placa de baz. A se acorda mare atenie la instalarea
procesorului, deoarece pinii acestuia (cazul AMD) sau pinii soclului (cazul
Intel) sunt foarte apropiai i orice greeal de instalare va conduce la
defectarea procesorului.
d. Se instaleaz plcuele de memorie RAM n sloturile corespunztoare 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 acelai 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

7
aceeai pastil de silicon i un procesor grafic, denumit GPU (Graphical
Processing Unit, unitate de procesare grafic), ceea ce conduce la
performane mai mari i consum redus de energie, aceasta datora tehnologiei
avansate de fabricaie de sub 45 nm.
h. Se instaleaz orice alt plac extern pe porturile PCI/PCI Express din
dotarea plcii de baz. Spre exemplu, se pot instala plci de captur TV, plci
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 corespunztoare de pe placa de baz (alimentare plac i procesor) i
la unitile de intrare/ieire (Hard disk, CD/DVD).
k. Se conecteaz monitorul la calculator prin cablul corespunztor (VGA, DVI,
HDMI).
l. Se conecteaz perifericele de intrare/ieire, 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 corespunztor se poate porni
calculatorul urmrind mesajele pe monitor.

8
Laborator 2. REPREZENTAREA NUMERELOR N VIRGUL FIX
I N VIRGUL MOBIL. OPERAII ARITMETICE

n funcie de poziia virgulei, reprezentrile binare folosite n calculator pot fi


reprezentri n virgul fix i reprezentri n virgul mobil. n registrele calculatorului
virgula nu se reprezint fizic nicieri dar poziia 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 operaiile de nmulire,
ntruct nu va duce la depirea capacitii de reprezentare.
Reprezentarea n virgul mobil numit i reprezentare cu virgulflotant se utilizeaz
pentru numere reale foarte mari sau foarte mici. Nu toate calculatoarele sunt proiectate
pentru aritmetica n virgul mobil, dar ele pot efectua operaii cu numere n virgul mobil
prin interpretare cu ajutorul unor programe de compilare adecvate.

2.2. Baze de numeraie


2.2.1. Reprezentarea numerelor n diverse baze de numeraie
Baza unui sistem de numeraie definete intervalul de valori posibile pentru cifrele ce pot
fi folosite. Cele mai utilizate baze de numeraie sunt bazele 10 (zecimal), 2 (binar), 8 (octal)
i 16 (hexazecimal). Exist i sisteme de numeraie 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, aa 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 numeraie
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

9
Bazele 8 i 16 se folosesc de specialiti 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 uurin.
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, aa cum se poate
urmri n reprezentarea primelor 16 cifre din zecimal n bazele de numeraie 2, 8 i 16
reprezentat din tabelul anterior.

2.2.2. Conversia numerelor ntre baze


Pentru a converti un numr dintr-o baz x ntr-o alt baz y (unde xiy 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 mpririi pentru partea ntreag i prin metoda nmulirii
pentru partea zecimal [50].
Formula general pentru determinarea valorii n baza 10 a unui numr n baza k
reprezentat n virgul fix este:
n 1
-------------------------- (valoare numr)10 bi k i . (2.2.1)
im

Valoarea cifrei din poziia i este dat de bi . Se consider n cifre la partea ntreag i
mcifre la partea zecimal.
Exemplu: numrul (541.25)10, indicele 10 reprezint baza, k = 10, n = 3, m = 2. Acest
numr este reprezentat ca:
5 102 + 4 101 + 1 100 + 2 101 + 5 102 =
= (500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10 = (541.25)10 .
Exemplu: numrul (1012.01)2, indicele 2 indic faptul c baza n care este reprezentat
acest numr este 2, k = 2, n = 4, m = 2. Reprezentarea lui este:
1 23 + 0 22 + 1 21 + 0 20 + 0 21 + 1 22 =
= (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 numete metoda
polinomial.
n aceast modalitate de reprezentare a numerelor n baza 2 se folosesc noiunile de cel
mai semnificativbit (MSB-bitul din stnga, prin convenie) respectiv cel mai puin
semnificativbit (LSB-bitul din dreapta prin convenie).
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 prii fracionare.
Conversia prii ntregi se face prin mpriri succesive la baza n care se face conversia i
reinerea resturilor, de aceea metoda se numete metoda resturilor. Primul rest obinut
reprezint cifra cea mai puin semnificativ (LSB) a numrului ntreg convertit. La a dou
mprire dempritul este ctul de la mprirea precedent. Procesul se continu pn se
obine ctul zero. Orice numr nteg din baza 10 poate fi convertit n orice alt baz, prin
mpriri succesive la baza n care se face conversia.
Pentru exemplificare se convertete (29.375)10 n baza 2.

10
Mai nti se convertete partea ntreag prin mpriri succesive:

ntreg Rest
29:2 14 1 LSB
14:2 7 0
7:2 3 1
3:2 1 1
1:2 0 1 MSB
(29)2 = (11101)

Conversia prii fracionare se face prin nmuliri succesive. Multiplicatorul este baza n
care se face conversia. inem seama c partea fracionar este mai mic dect 1 iar prin
nmulirea cu 2 se va obine un rezultat mai mic dect 2, aa c partea ntreag a acestui
rezultat va fi chiar cifra cea mai semnificativ a prii fracionare a numrului n baza 2. La
operaia urmtoare se nmulete cu 2 partea fracionar a rezultatului obinut anterior i
operaia se repet pn se obine partea fracionar 0 sau pn la obinerea numrului de cifre
dorit. Pentru exemplul ales se prezint calculul mai jos. aa cum se poate urmri n exemplul
de mai jos:

Partea
ntreag MSB
.375 2 0+75
0
.75 2 1+5 1
.5 2 1+0 1 LSB
(.375)l0 = (.011)2
Verificare:
Valoarea numrului n baza 10 se calculeaz dup relaia (2.2.1): (numrul)10 = b1 21+
b2 22 + b3 23 + ... + bi 2i + ... unde bi reprezint cifrele din reprezentarea numrului n
binar, de pe poziia i.
(0.011)2 = 0 21+ 1 22+ 1 24 = 0+1/4+1/8 = 0.25 + 0125 = (0.375)10
Rezultatul conversiei lui (29.375)10 n baza 2 este aadar (11101.011)2 .
Pentru a converti un numr din baza 2 n baza 8 se formeaz grupe de cte 3 cifre binare
ncepnd de la punctul zecimal spre stnga i spre dreapta. Dac ultima grup nu este
complet se adaug zero. Fiecare astfel de triplet se convertete direct n baza 8, n cifra
corespunztoare. De exemplu: (10110)2 = (010)2(110)2 = (2)8(6)8 = (26)8 .
Pentru a converti un numr n baza 16 se procedeaz n mod similar, dar se creeaz grupe
de cte 4 cifre binare, aa 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. Consideraii 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, poziia virgulei este fix fa de irul de bii
prin care se reprezint data numeric. Reprezentarea numerelor n virgul fix se face att

11
pentru numere ntregi cu semn sau fr semn, ct i pentru numerele subunitare. Dac
procesorul calculatorului lucreaz n virgul fix cu numere subunitare, la introducerea
datelor fiecrui numr ise ataeaz un factor de scar, prin care s-l transforme ntr-un
numr subunitar. Aliniamentul virgulei este fcut de programul de ncrcare n memorie. n
compilatoarele scrise pentru virgul fix, factorul de scar este tratat de compilator, astfel
nct utilizatorul limbajelor de nivel nalt nu trebuie s in seama de acest aspect la
efectuarea operaiilor [49].
Pentrunumerele cu semn, ntotdeauna pe prima poziie binar din partea stnga se
reprezint semnul, convenia 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).

Nntreg = bn1bn2bn3 b2b1b0 Nsubunitar = b0b1b2b3 b (n 1)

semn MSB LSB 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 numeraie cu virgul fix, fiecare numr are acelai numr de cifre iar
punctul zecimal este ntotdeauna n aceeai poziie.
Diferena dintre reprezentarea numerelor cu virgul fix pe hrtie i n calculator este c
n calculatorpunctul zecimal nu se scrie nicieri, el se consider c se afl ntr-o anumit
poziie, mereu aceeai. Se spune c punctul zecimal se afl doar n mintea programatorului.

2.6. Operaii aritmetice cu numere binare


Cu numerele binare se pot efectua toate operaiile aritmetice i algebrice care sunt
efectuate cu numerele zecimale, respectiv adunare, scdere, nmulire, mprire, ridicarea la
putere, extragere de radicali, funcii trigonometrice, logaritmice comparare .a.m.d. Cele mai
multe dintre operaii se reduc la operaii de adunare, cu respectarea unor reguli prestabilite.

2.6.1. Adunarea n binar


Tabla adunrii a dou cifre binare este urmtoarea:
0+0=0
0+1=1
1+0=1
1 + 1 = 10 (cu depire, transport, carry).
Ultimul rnd de mai sus se citete: 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.

12
Pentru adunare se aeaz numerele unul sub altul i se ncepe de la dreapta, innd seama
de transporturile rezultate din depirea de pe poziia 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-adevr (23)10 + (17)10 = (40)10

2.6.2. Scderea n binar


Scderea n baza doi se realizeaz asemntor cu adunarea innd seama c tabla scderii
n binar este:
00=0
0 1 = 1 (cu mprumut, cary in )
10=1
1 1 = 0.
Se pot scdea orice numere binare. Operaia se execut poziie cu poziie, de la dreapta la
stnga, la nevoie fcnd un mprumut de la poziia din stnga, un cary in.
Exemplu: vom scdea din numrul A numrul 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 scdere se aeaz 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 diferenei este (1010)2,respectiv23 + 22 = 8 + 2 = 12.


ntr-adevr (23)10 (13)10 = (10)10
Scderea unui numr n binar se poate realiza prin adunarea complementului desczutului
(acelai numr cu semn schimbat). La calculatoare, pentru a schimba semnul unui numr, se
folosete complementul fa de 2, C2.

2.6.3. nmulirea n binar


nmulirea (multiplicarea) n binar se bazeaz, ca i n sistemul zecimal, pe adunare. Tabla
nmulirii n binar este urmtoarea:
00=0
01=0
10=0
11=1

13
Pentru a nmulii numerele binare A i B se fac nti produsele pariale (P i) ale lui A cu
fiecare cifr binar a lui B, luate de la dreapta la stnga i apoi se nsumeaz rezultatele
pariale ntre ele. Produsele pariale ale fiecrei cifre din B cu A sunt i ele simple:
dac cifra din B este un 0, atunci i produsul parial este 0 i nu are efect asupra
adunrii;
dac cifra din B este un 1, atunci produsul parial al lui A cu 1 este chiar A.
Exemplu: vom nmuli 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:


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

ntr-adevr (23) 10 (17) 10 = (391) 10

2.6.4. mprirea n binar


mprirea n binar se aseamn cu cea obinuit, zecimal. Cnd numrul A trebuie
mprit la numrul B, pot aprea 2 situaii:
mprire exact, la care intereseaz i se calculeaz i cifrele de dup virgul;
mprire cu rest, cnd mpritorul B nu se cuprinde exact n dempritul A. Calculele
se opresc acolo unde ar trebui s fie virgula, dar din demprit rmne un rest care trebuie
specificat. mprirea poate continua i dup virgul, pn cnd se obine precizia dorit.
mprirea n binar const ntr-un ir de scderi. De fiecare dat cnd mpritorul ncape
n cifrele dempritului se pune cifra 1 la ct i se procedeaz ca n mprirea normal.
Cnd mpritorul nu ncape n acelai numr de cifre ale dempritului, se pune zero la ct,
se coboar urmtoarea cifr spre dreapta din demprit i se continu pn cnd
mpritorul ncape n demprit. Restul reprezint ultima linie.
Exemplu de mprire n binar fr rest:
Vom mpri numrul A la numrul 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 Ctul
B 1 1 1
1 1 1 1
0 0 1 1 1 1
1 1 1
0 0 0 0 0

Valoarea ctului obinut este 0 1 1, adic: 22 + 21 = 4 + 2 = 6.


Restul se citete pe ultima linie, n exemplul prezentat 0 0 0 0.

14
(43)10 : (7)10 = (6)10 frrest.
Exemplu de mprire n binar cu rest:
Vom mpri numrul A la numrul 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 Ctul
B 1 1 1
1 1 1 1
0 1 0 0 0 1
1 1 1
0 0 1 1 0
Valoarea ctului este este 0 1 1, adic: 2 + 2 = 4 + 2 = 6.
2 1

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


ntr-adevr (47)10 : (7)10 = (6)10 rest (3)10.

15
16
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;

17
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

18
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.

19
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 f1 f2 f3 f4
0 0
0 1
0
1 0
1 1
0 0
0 1
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,

20
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 f1 f2 f3 f4
0 0
0 1
0
1 0
1 1
0 0
0 1
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.

21
22
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 2 3
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.

23
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

24
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

25
26
Laborator 6. STUDIUL CIRCUITELOR BASCULANTE BISTABILE

6.1. Principiul de funcionare 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
depinznd att de starea sa curent ct 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 variaie brusc a
mrimilor electrice de la cele dou ieiri ale circuitului. Procesul de basculare se declaneaz fie sub
aciunea unor semnale de comand externe (cazul circuitului basculant bistabil i monostabil), fie ca
urmare a proprietii 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 cuvntul
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 cuvntul Reset din limba englez care se traduce cu tergere) notat R, activ
pe 1 sau R (Reset negat) activ pe 0 . Prin convenie 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 impedanele Z1 i Z 2 i o bucl de reacie pozitiv,
supraunitar [1].
n funcie de natura i valoarea impedanelor 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 stri cvasistabile, ritmul cu care
i schimb strile este determinat de valorile rezistenelor i capacitilor care formeaz impedanele
circuitului.
Circuitul basculant monostabil (CBM) are o stare permanent stabil i una cvasistabil. Una din
impedane 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

27
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 rmne permanent n oricare din cele dou stri, schimbarea din una n cealalt fiind
posibil numai sub aciunea unui semnal (impuls) extern. Impedanele de cuplaj pentru CBB sunt
rezistente. Uneori se folosesc i capaciti conectate n paralel care au rolul de a reduce timpul de
basculare, numite capaciti de accelerare. CBB preia eantioane din semnalele de intrare i i
modific semnalele de ieire 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 numete bistabil R-S sau latch simplu (se poate
traduce prin zvor ntruct circuitul poate fi zvort ntr-o anumit stare la primirea unei comenzi
externe). Un CBB de tip R-S poate fi format din dou pori NOR sau din dou pori NAND, intrrile
fiind cuplate intersectat la ieiri aa cum este reprezentat n figura 6.2 a) i b).

a) b)
Figura 6.2. Circuite basculante bistabile realizate
cu pori logice. a) NOR i b) NANDI.
Operaiile logice pe care le poate efectua un bistabil cu pori NOR reprezentat n figura 6.2 a) pot fi
exprimate prin relaiile urmtoare i tabelul de stri de mai jos [15]
Q S QR
Q R QS .
R S Q Q
0 0 0 0(FM)
0 1 1 0
1 0 0 1
1 1 * *

Urmrind fiecare din cele dou bucle de reacie, se poate urmri c pentru S 1 (i R 0) se
obine [15]:
Q S QR 1 Q 1 1 Q Q ( 1)
Q R Q S 0 Q 1 0 0 0 ( 1 ).
La analiza funciei bistabilului R-S trebuie s se in seama c n momentul aplicrii semnalelor,
CBB poate s se afle ntr-una din cele dou stri (stabile) deci trebuie s se ia n consideraie toate
combinaiile posibile pentru ieirea activ Qt 1 n funcie de strile Qt existente n momentul aplicrii
comenzilor.
pentru bistabili sunt valabile urmtoarele observatii:
a) aplicarea semnalului 0 la ambele intrri nu modific starea bistabilului
b) aplicarea semnalului S 1 simultan cu R 0 determin Qt 1 1, indiferent de starea
bistabilului nainte de aplicarea comenzii. Aceast trecere a bistabilului n starea Q 1 se numete
poziionare;
c) aplicarea semnalului R 1 simultan cu S 0 determin circuitul s treac sau s rmn pe
poziia 0, operaie numit tergere;

28
d) aplicarea simultan a semnalelor 1 la ambele intrri, S i R, genereaz o stare nedeterminat, de
aceea comanda R S 1 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 pori NAND reprezentat n figura 6.2 b)
Qt 1 S R Qt
Qt 1 R S Qt .
De regul, n cazul circuitelor de tip NAND, comutarea se face prin 0 logic (adic pe front
negativ), aplicndu-se semnalele R i respectiv S la intrrile bistabilului. Ca urmare, pentru a
memora bitul 1 (adic Q 1) se vor aplica la intrri semnalele S 0 i R 1 i invers, respectiv
S 1 i R 0 pentru a obine bitul 0. n acest caz este interzis aplicarea simultan a comenzilor
R 0 i S 0, deci condiia obligatorie este:
R S 0 sau R S 1.
Pentru obinerea ecuaiilor logice ale ieirilor se apeleaz la minimizarea funciilor logice Qt 1 i
respectiv Qt 1

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 comutaie .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.

29
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

30
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

31
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

32
Laborator 8. ARHITECTURA SETULUI DE INSTRUCTIUNI

Procesoarele pot fi clasificate dup numrul maxim de adrese din memoria principal n
cmpurile instruciunilor lor. Instruciunile cu doi operanzi necesit cel mult trei adrese n
memorie. Pentru rezolvarea unei anumite probleme, i evident un timp mai lung de execuie.
Instruciunile lungi, cu adrese multiple, dei conduc la programe mai scurte, necesit circuite
electronice complexe pentru decodificare i prelucrare.

8.1 Ciclul instruciunii

Ansamblul de operaii legate de realizarea unei instruciuni se numete ciclu-instruciune.


Pentru execuia unei instruciuni trebuie realizate urmtoarele dou faze:
1. Citirea instruciunii din memorie i transferarea ei n CPU. Aceast faz se numete
FETCH;
2. Executarea instruciunii de ctre unitile funcionale ale calculatorului, respectiv
generarea rezultatului. Aceast etap se numete EXECUTE.
O secven FETCH-EXECUTE pentru o instruciune formeaz ciclul instruciune. Aceste
dou faze conin mai multe etape i se reiau n mod repet n timpul rulrii unui program, aa
cum se prezint n figura 8.1 [7].
Faza FETCH cuprinde urmtoarele etape succesive (pai):
1. CPU citete din memorie de la adresa specificat n registrul numrtor de program-PC
(Program Counter) instruciunea ce va fi executat i o ncarc n registrul de instruciune
(RI) din UC.
2. Este identificat operaia ce va avea loc i sunt stabilii operanzii, din cmpurile
instruciunii.Instruciunea este mprit n dou cmpuri:
- cmpul operaie (OPCODE) pe care l dirijeaz n registrul de funcie (RF);
- cmpul de adres (ADDRESS) pe care l stocheaz n registrul de adres (RA).
3. UC decodific OPCODE operaie numit interpretare OPCODE.
8. UC incrementeaz numrtorul de program (PC) pentru a specifica adresa urmtoarei
instruciuni de executat.
Faza FETCH este obligatorie pentru orice instruciune ntruct ea asigur extragerea
instruciunii curente din memorie i decodificarea acesteia.
Dup generarea adresei urmtoarei instruciuni ncepe faza EXECUTE, care cuprinde
urmtoarele etape:

33
Figura 8.1. Etapele ciclului instruciunii.
5. UC determin adresa efectiv a operandului sau adresele efective ale operanzilor,
folosind informaia din registrul de adres.
6. CPU citete data (datele) din memorie de la adresa calculat ca adres efectiv i o
extrage ca fiind operandul. Faza se numete FETCH OPERAND. Data este transferat n
ALU. Uneori operanzii sunt stocai n interiorul CPU n registrele locale ale ALU.
7. UC comand ALU s efectueze funcia sau operaia specific de OPCODE prin
procesarea operanzilor i determinarea rezultatelor. Aceasta este faza de execuie propriu-
zis, cea codificat n instruciune.
8. Rezultatul este memorat la destinaia corespunztoare, n memorie sau n registrele
speciale ale CPU.
Se determin urmtoarea instructiune i ciclul se reia de cte ori este nevoie pentru a
executa ntreaga succesiune de instruciuni din program.
Anumite etape din ciclul instruciune pot lipsi pentru anumite instruciuni, de exemplu din
instruciunile fr operanzi lipsesc etapele 5 i 6. n cazul instruciunilor cu operanzi multipli
aceste etape se repet de un anumit numr de ori.
n cazul instruciunilor de salt nu sunt necesari paii 4, 5 i 8, iar n instruciunile de
comparare pasul 8 lipsete, ntruct rezultatul nu trebuie memorat.
Totdeauna faza FETCH este unic, iar faza EXECUTE este diferit n funcie de tipul
instruciunii concrete ce trebuie executat.
Un ciclu instruciune se execut din punct de vedere al CPU ntr-un ciclu main de
ordinul micro sau chiar nanosecunde.

34
Viteza de procesare se msoar n kHz sau multiplii acestuia, sau numrul de
instruciuni/secund (MIPS milioane de instruciuni pe secund), sau prin numrul de
operaii n virgul mobil (FLOP).

8.2. Tipuri de instruciuni


Aa cum am mai specificat, exist mai multe tipuri de instruciuni pe care le poate executa
un procesor: aritmetice, logice, pentru transferul informaiei, pentru deplasarea i rotirea
datelor, de ramificare (pentru controlul secvenei de program), pentru controlul procesorului,
pentru operaii cu iruri etc. Pentru fiecare tip de procesor instruciuni au forme i sarcini
specifice. Vom prezenta pe scurt aceste tipuri de instruciuni pentru procesoarele Intel x86.

8.2.1 INSTRUCIUNI (OPERAII) DE TRANSFER NTRE REGISTRE

Microprocesorul convenional din seria Intel x86 are urmtoarele registre pentru lucrul
curent: AX, BX, CX i DX (respectiv extensiile pe 32 bii, EAX, EBX, ECX i EDX), astfel:
Registrele de uz general pe 32 bii
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 bii
31 16 15 8 7 0
AX
Denumiri alternative
AH AL
EAX
BX
Denumiri alternative
BH BL
EBX
CX
Denumiri alternative
CH CL
ECX
DX
Denumiri alternative
DH DL
EDX
Denumire alternative BP
EBP
Denumire alternative SI
ESI
Denumire alternative DI
EDI
Denumire alternative SP
ESP

35
Principial, pentru lucrul uzual se lucreaz cu registrele de 16 bii, cele generale putnd fi
mprite n cte dou registre de 8 bii: cel care reine octetul inferior, notat cu sufixul L (de
la Low)i cel care reine octetul superior, notat cu sufixul H (de la High).
Microprocesoarele de diverse tipuri au mai multe registre, cu mai mult de 16 bii (cele
din seriile I-386, I-486 i Pentium ). Registrele de mai sus au de fapt la aceste procesoare un
numr de 32 de bii, dar pot fi folosite ca registre de 16 bii cu notatiile de mai sus. n cazul n
care se dorete folosirea lor ca registre de 32 de bii, 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 conin 4 registre de segment: CS, DS, ES, SS.
Registrele de segment pe 16 bii
15 0
CS Code Segment
DS Data Segment
ES Extra Segment
SS Stack Segment
F
Registre
S
suplimentare pentru
G
extensia de 32 bii
S

Registrul indicatorilor de condiii, FLAGS de 16 bii (respectiv, EFLAGS pe 32 bii)


15 0
FLAGS

Registrul indicatorului de instruciuni (Instruction Pointer), IP de 16 bii (respectiv, EIP


de 32 bii)
15 0
IP Instruction Pointer

Notaiile folosite pentru registre n cele ce urmeaz sunt:


de 8 bii - r8: AL,AH,BL,BH,CL,CH,DL,DH;
de 16 bii - r16: AX,BX,CX,DX,SI,DI,BP,IP,F;
de 32 bii - 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. INSTRUCIUNI DE TRANSFER NTRE REGISTRE

Principale instruciune pentru memorarea datelor n registrele microprocesorului este


instruciunea MOV.
Sintax: MOV destinaie, surs
Aciune: destinaie ia valoarea surs :
destinaie surs
Operanzi:
destinaie: r8, r16, r32, rs
(registre generale de 8, 16, 32 bii i registre de segment)

36
surs: r8,r16,r32,rs,n,nn,nnnn
(registre generale de 8, 16, 32 bii, registre de segment i constante de 8, 16 i 32 bii)

Restricii: 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 coninutul lui AL
MOV BL, DH ;ncarc n BL coninutul lui DH
MOV AH, DL ;ncarc n AH coninutul 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 instruciune se va urmri n fereastra de afiare a registrelor
modificarea coninutului acestora.
Se vor scrie i testa urmtoarele 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 coninutul 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 coninutul 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 coninutului acestora.

8.2.3. INSTRUCIUNI DE INTERSCHIMBARE NTRE REGISTRE

Operaia automat de interschimbare a coninuturilor din dou registre este XCHG.


Sintaxa:
XCHG surs1, surs2
Aciune: Se interschimb coninuturile registrelor surs1 i surs2.
surs1surs2
surs2surs1

Operanzi: dst,src:r8,r16,r32
Restrictii:Nu exist instruciuni 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)

37
Mod de lucru :
P 8.7. Se vor ncarca urmtoarele registre astfel:
AL cu 11
BL cu 22
CX cu 3344
DX cu 5566
dup care se va interschimba coninutul celor de 8 bii i coninutul celor de 16 bii.

P 8.8. Se vor ncrca registrele AL, AH, BL i BH constantele AA,BB,CC i DD i


apoi se va efectua permutarea circular a coninutului celor 4 registre. Se vor folosi
instruciuni de tip XCHG, i dup terminarea rulrii programului registrele vor trebui s aib
valorile: AL=BBh, AH=CCh, BL=DDh i BH=AAh

8.2.4. INSTRUCIUNI DE ADUNARE I SCDERE

Sintaxe generale:
ADD dst,src - Adunare : dst=dst+src;
ADC dst,src - Adunare cu transport (CF): dst=dst+src+CF
SUB dst,src - Scdere: dst=dst src;
SBB dst,src - Scdere cu transport (carry) sau mprumut (borrow):
dst=dst-src-CF;
n toate operaiile aritmetice, se folosete implicit convenia 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 diferenei ntre valoarea lor absoluta i 28n ,
unde n este numrul de octei folosii.
Exemple:
25h=0012.0101 este un numr pozitiv, avnd echivalentul zecimal 37;
0B3Ch= 0000.1011.0011.1100 este un numr pozitiv, cu echivalent zecimal 2876;
0A7h=1012.0111 este un numr 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 numr negativ de doi octei, 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 faa numrului scris n format hexazecimal nu nseamna
c acesta are semn pozitiv. Conteaz numai primul bit al octetului cel mai semnificativ.
Aceste transformri se pot face cu utilitarul Calculator din Windows, avnd opiunea
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 urmtoarea succesiune de operaii:
AL+66
AL+BL
AL-CL
AL-22
AL+BL+CL+DL

38
P 8.12. Se vor ncarca registrele cu constantele: AX=1122, BX=3344, CX=5566,
DX=7788 i se va efectua urmtoarea succesiune de operaii:
AX+6666
AX+BX
AX-CX
AX-22
AX+BX+CX+DX
P 8.11 Se vor ncarca dou numere de 32 de bii n registre n felul urmtor:
- primul numr 11223344 n AX (octeii superiori) i BX (octeii inferiori)
- al doilea numr 55667788 n CX (octeii superiori) i DX (octeii inferiori) n
continuare se va efectua adunarea celor dou numere. Rezultatul trebuie s fie 6688AACC
P 8.12 Acelai program ca la 8.11, numerele fiind 55667788 i 99AABBCC. Rezulatul
trebuie s fie EF113354.
P 8.13 Acelai program ca la 8.11 dar, numerele fiind 55667788 i 11223344, se va
efectua scderea lor. Rezultatul trebuie s fie 44444444.
P 8.14 Acelai program ca la 8.13, numerele fiind 22334455 i 66778899. Rezultatul
trebuie s fie BBBBBBBC.

39
40
Laborator 9. PRELUCRAREA INFORMAIEI NTR-O
UNITATE ARITMETICO-LOGIC (ALU)

9.1. Descrierea modului de funcionare a ALU


Unitatea Aritmetico-Logic (ALU) efectueaz operaii cu operanzi (date de intrare).
Principalele funcii realizate de Unitatea Aritmetico-Logic (ALU) sunt:
operaii aritmetice i logice cu operanzi de intrare codificai pe n bii. Valoarea lui n este
egal de obicei cu numrul de bii ai magistralei interne de date a procesorului;
furnizeaz indicaii privind transportul, mprumutul sau alte caracteristici privind
rezultatul operaiilor efectuate, prin intermediul unor valori binare numite indicatori de
condiii.
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 intrri de cte n bii care reprezint cei doi operanzi cu care lucreaz ALU:
i) operandul din stnga, Left, codificat Ln 1 L0;
ii) operandul din dreapta, Right, codificat Rn 1 R0.
o intrare pentru specificarea operaiei aritmetico-logice de efectuat ntre cei doi operanzi,
codificat cu trei bii, notat n figur cu F2F1F0 (numrul de bii depinde de setul de funcii al
ALU);
ieirea de n bii pe care se genereaz rezultatul Qn 1 Q0;
o serie de bii cu semnificaie independent, numii indicatori (flag), ce caracterizeaz
relaii ntre operanzi sau rezultatul operaiei efectuate; n exemplul din figur au fost
considerai urmtorii indicatori:
CARRY: este un bit care reprezint deplasarea care apare la operaiile aritmetice cu
numere ntregi pozitive;
EQUAL: indic identitatea celor doi operanzi, Ln 1 L0 i Rn 1 R0;
ZERO: semnalizeaz faptul c rezultatul operaiei curente, Qn 1 Q0, este o configuraie
binar cu toi biii egali cu zero;
SGN: reprezint valoarea celui mai semnificativ bit, Qn 1, al rezultatului care, dac
rezultatul este interpretat ca un numr cu semn, este valoarea semnului (0 pentru plus i 1
pentru minus);

41
PAR: reprezint cel mai puin semnificativ bit al rezultatului care, dac rezultatul este
interpretat ca numr ntreg, reprezint paritatea numrului (0 pentru numr par i 1 pentru
numr impar);
OVF: reprezint depirea capacitii 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 funcii al ALU pentru exemplul din figura 6.2 este limitat la urmtoarele:
AND: Qi = LiRi, 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 stnga;
LEFT: ieirea ia valoarea operandului din stnga;
SHL: reprezint deplasarea logic cu o poziie la dreapta a operandului din stnga
(cel mai puin semnificativ bit se pierde).
ALU uzuale realizeaz i alte funcii, de exemplu decrementarea (DEC), rotirea (ROT),
NOT etc.

9.2. Structura ALU


O unitate aritmetico-logic conine blocuri formate din circuite logice de tipul celor
porilor logice, codificatoare, decodificatoare, multiplexoare, demultiplexoare, sumatoare,
multiplicatoare, registre de deplasare pentru realizarea operaiilor 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 operaii aritmetice i logice.
n funcie de performanele dorite pentru ALU, de restriciile tehnologice i de opiunile
proiectantului, pot fi concepute organizri 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 uniti aritmetico-logice, unde:
L reprezint operandul din stnga de n bii;
R reprezint operandul din dreapta de n bii;
F2F1F0 este codul operaiei efectuate de ALU;
Q este ieirea de n bii a ALU pe care se genereaz rezultatul operaiei F2F1F0 asupra
celor doi operanzi; ea reprezint ieirile celor n MUX3 care selecteaz ieirile circuitelor
anterioare ce realizeaz operaia 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 ieirile celor n circuite XOR, ieiri folosite i n blocul de test, TEST, pentru
calculul condiiei de EQUAL ct i n blocul circuitelor aritmetice, CA, pentru calculul
funciilor ADD, SUB i INC.

42
Figura 9.2. Organizarea intern a unei ALU.

Organizarea intern a blocului CTA depinde de opiunea pentru viteza


de execuie a funciilor numerice. Blocul TEST este realizat din dou circuite OR.
O unitate aritmetico-logic din procesor este realizat din astfel de blocuri funcionale 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
uniti aritmetico-logice elementare (ALUE) care opereaz cu cuvinte de un singur bit, ca cea
prezentat n figura 9.3.
Circuitul ALUE poate fi gndit ca o felie (slice) de ALU.
Semnificaia codurilor de comand pentru ALUE este dat n tabelul 9.1.

Tabelul 9.1. Tabelul funciilor realizate de ALUE


F2F1F0 Mnemonic Semnificaia
000 AND Funcia AND bit cu bit
001 OR Funcia OR bit cu bit
010 SHL Deplasarea operandului L la dreapta, cu o
poziie

43
011 LEFT Trece operandul L
100 XOR Funcia XOR bit cu bit
101 ADD Adunarea operanzilor
110 SUB Scderea 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 fiecrui circuit din componena ALUE este urmtorul:
poarta AND realizeaz funcia logic LiRii calculeaz Gi pentru a fi generat ctre
circuitul de transport anticipat (prin MUX2 codul F1F0 = 00 selecteaz valoarea lui Ri);
poarta OR realizeaz funcia logic Li + Rii calculeaz produse pariale Pi pentru a fi
generate ctre circuitul de transport anticipat, aa cum am prezentat n capitolul 3, paragrafele
3.9 i 3.10;
poarta XOR conectat la intrarea 4 a MUX3 realizeaz funcia logic Li Ri i calculeaz
suma modulo 2 dintre operanzii implicai n operaiile de tip aritmetic (adunare, scdere i
incrementare);
poarta XOR conectat la intrrile 5, 6 i 7 a MUX3 calculeaz suma modulo 2 cu bitul de
transport recepionat de la circuitul de generate a transportului anticipat;
MUX2 selecteaz ca operand pe Ripentru operaiile logice binare i pentru adunare, pe
Ri pentru scdere i pe 0 pentru increment;
MUX3 are rolul de a selecta la ieirea Qi una din funciile calculate pe nivelul anterior.
Codificarea funciilor prezentat n tabelul 9.1 a fost fcut astfel nct s permit aplicarea
biilor de selecie direct la intrarea ambelor multiplexoare. S-a evitat astfel utilizarea unor
circuite random de transcodare pe intrrile de selecie ale MUX2.
Ordinul de mrime al dimensiunii structurii ALU format din n ALUE, circuitul TEST i
CTA este determinat de circuitul CTA iar viteza de execuie a operaiilor este dat tot de
lungimea cii de transport (CTA).
Indicatorii de condiii sunt poziionai de unitatea de prelucrare n conformitate cu
evenimentele ce s-au produs la efectuarea operaiei comandate anterior pentru ALU. Aceti
indicatori (numii i fanioane, flag) sunt memorai de obicei n circuite basculante bistabile,
componente ale Registrelor indicatoare, registre interne CPU. Indicatorii de condiii pot
reprezenta, de exemplu, semnul rezultatului, rezultat zero, paritatea etc.
Intrrile n CPU sunt comenzi interne procesorului, comenzi generate de UC i trimise
ctre ALU. Conform acestor comenzi ALU va prelucra datele de la intrare i va furniza datele
la ieire (registre interne sau externe).

9.3. Realizarea n Circuit Maker a unei uniti ALU pe 4 bii

Circuitul integrat SN54/74LS181 reprezint o unitate aritmetico-logic pe 4 bii, care poate


efectua toate cele 16 operaii logice posibile, utiliznd dou variabile, precum i o varietate de
operaii aritmetice.
Ofer 16 operaii de adunare, scdere, comparare, dublare i n plus alte 12 operaii
aritmetice;

44
Suport toate cele 16 operaii logice cu dou variabile: SAU-exclusiv (XOR),
comparare, I (AND), I-negat (NAND), SAU (OR), SAU-negat (NOR), precum i
alte 10 operaii logice.

Figura 9.4 Circuitul integrat ALU 4 bii (SN54/74LS181) i semnifacia pinilor

n figura 9.4 se prezint circuitul integrat cu semnificaia pinilor de conexiune, iar n figura
9.5 avem diagrama logic a cicuitului ALU pe 4 bii.

Figura 9.5 Diagrama logic a unitii ALU pe 4 bii (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 bii, conform reprezentrii din figura 9.6.

45
Figura 9.6 Realizarea unui circuitului echvalent unitii ALU pe 4 bii

Dup realizarea circuitului, se poate verifica funcionarea i corectitudinea operaiilor unitii ALU
pe 4 bii conform tabelului de funcii logice de mai jos:
Tabel funcii logice ALU 4 bii (circuit SN54/74LS181)

46
Laborator 10. FUNCIONAREA UNITILOR DE MEMORARE
NTR-UN CALCULATOR. TRANSFERURI DE DATE
I OPERAII 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 locaiilor de memorie. Memoria este astfel mprit
(segmentat) n segmente de 64 KB, adic 65535 locaii de memorie de 1 octet (byte), avnd adrese de
la 0000 (cea mai de jos) i pn la valoarea hexazecimal FFFF (adic 65535 n baza zecimal, adresa
cea mai de sus).

Figura 10.1 Principiul segmentrii 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
folosete paginarea).
AS este adresa de segment, coninut n unul din urmtoarele registre:
-CS pentru segmente de coduri de instruciuni
-DS pentru segmente de date
-SS pentru segmente de stiv
-ES pentru extrasegmente
Iar adresa bazei segmentului este obtinut prin deplasarea cu 4 bii spre stanga a adresei de segment
(inmulire cu 16):
ABS=16*AS
Convenii :

47
Orice operand pus ntre paranteze drepte reprezint o adresa de memorie . De exemplu
[3A21] reprezint coninutul locaiei de memorie cu adresa efectiv 3A21, iar [BX+DI] reprezint
coninutul locaiei 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 (numr sau etichet ) care se adun la coninutul acestui registru. Acest forma
este echivalent cu [RG+const], deci scrierea de termeni alaturai are semnificaie de sumare i nu de
nmulire.

10.2. Programul de emulare emu8086

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


avnd integrat programul deconversie n cod main, asamblorul. Acest emulatorul ruleaz
programele scrise dectre utilizator exact ca un microprocesor real, n modul pas cu pas
pentru observareaefectului fiecrei instruciuni.Acest lucru se este posibil deoarece acest
program prezint coninutul regitrilormicroprocesorului, a memorie, a stivei, valoarea
variabilelor precum i starea indicatorilor de condiii (fanioanelor). Instruciunile programului
pot fi executate pas cu pas n mod normal darexist posibilitatea de execuie i n sens invers.

Figura 10.2 Programul de emulare EMU8086

n fereastra principal(fig. 10.2) se va edita programul utiliznd instruciunile


specificeprogramrii n cod main. Dup terminarea editrii codului surs a programului se
vada comanda de compilare pentru verificarea corectitudinii programului (fig. 10.3).Dac
sunt probleme softul va specifican fereastra de compilare erorile gsitei tipul acestora pentru
depanarea lor. ncaz de succes se va cere salvareaprogramului i apoi se poate da nexecuie
aplicaia 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 nct s se poat urmriipas cu pas efectul fiecrei instruciuni.

48
Pentru a avea acces la vizualizarea segmentelor de memorie n timpul execuiei i
depanrii, se vor alege opiunile corespunztoare din meniul VIEW.

Figura 10.3 Ferestrele de execuie/depanare cod assembler n EMU8086

10.3. Teme de studiu


S se scrie i s se asambleze urmtorul exemplu de cod utiliznd programul
EMU8086.
MOV CL,BX[10h] ; ncarc n CL coninutul ;locaiei de memorie a carei adresa
efectiv este suma ;ntre coninutul lui BX i constanta 10h, iar adresa de ;segment este
coninut n DS.
Instruciunea este echivalent cu forma MOV CL, 10h[BX].
n mod normal, programatorul va specific numai adresa efectiv, dar n cazuri
speciale se poate folosi totui i adresa fizic, prin specificarea i a adresei de segment, cu
sintaxa:
AF=AS:AE
Exemplu:
MOV AH,DS:[20h] ;Transfer n AH coninutul
;locaiei 20h din segmentul a crui
;adres este coninut n registrul DS
MOV SS:[BX+10h], CL ;Transfer coninutul lui CL
;n locaia a carei adresa efectiv este
;dat de coninutul lui BX adunat cu 10h,
;din segmentul a crui adres este
;coninut n SS.

49
Modul de lucru:

Se va scrie i se va testa un program care efectueaza urmtoarele:


ncarc constanta 22h n registrul AL
Trimite aceast constant n memorie la adresa BX[20] i la adresa DS:30

Indicaii:
Ambele locaii sunt plasate n segmentul de date i se pot vizualiza n zona Dump din
fereastra inferioar a Turbo Debugger.

50
Laborator 11. TRANSFERURI PE 1 OCTET I PE 2 OCTEI

11.1. Tipuri de registrele de segment


n funcie 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
Registru de segment implicit
general
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 locaie de memorie are prin convenie un octet, astfel c ea poate fi operand numai
pentru un registru de 8 bii. n cazul n care se fac transferuri cu registre de 2 octei se
utilizeaz urmtoarea convenie ("little-endian"): la adresa specificat se afl octetul inferior
al registrului dublu, iar la adresa imediat urmtoare octetul superior.
Specificarea lungimii operandului (1 octet sau 2 octei) 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 bii 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
coninutul locaiei de memorie cu adresa mai mare). Nu este nevoie de prefix deoarece
operandul AX este de 16 bii i rezult implicit un transfer de doi octei.
ADD word ptr [BX+3000],59 adun la cuvntul (numr de 16 bii) coninut n
locaiile 3001 i 3000 din segmentul de date, numrul 59. Dac nu s-ar specific lungimea
"word ptr", s-ar face adunarea pe un singur octet ntre coninutul locaiei 3000 i constanta 59.
ADD byte ptr [BP+3000],59 adun la octetul coninut n locaia 3000 din
segmentul de stiv, numrul 59, fr vreo influenta asupra locaiei 3001. Dac nu s-ar
specifica lungimea, operaia s-ar efectua tot pe un octet, dar asamblorul ar afia totui o
avertizare legat de lungimea operanzilor.

51
11.2.Modul de lucru :
Se vor scrie i testa urmtoarele 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 octeii 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 numrul din locaiile ncarcate anterior cu constanta
33EE.
Indicaii:
Pentru a avea rezultatul adunrii pe 16 bii, va trebui folosit registrul AX, dup ce se
ncarc AH cu 00.
n memorie, la adresa DS:30 vor apare octeii 10.34, adic numrul 3410, rezultatul
adunrii lui 33EE cu 22.

4. Program care trimite n memorie la adresa 10 din segmentul de date suma


constantelor 44 i 122, fr s se specifice explicit registrul de segment.
Indicaii:
Rezultatul, la adresa 10 trebuie s apar sub forma 66.01.
5. Acelasi program ca la punctul.3 dar se vor folosi adrese logice, fr a implica alte
registre generale (se presupune ca nu trebuie modificat coninutul acestora).
Indicaii:
Va fi necesar s se specifice explicit registrul de segment.

52
Laborator 12. MODURI DE ADRESARE

n funcie de termenii folosii n formula general a adresei efective, se definesc


urmtoarele moduri de adresare:

12.1 Adresare imediat la memorie:


Se specific n adresa efectiv numai deplasamentul, care constituie chiar adresa
efectiv. Conform observaiei 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 coninutul locaiei cu adresa efectiv 54
din segmentul de date, iar n AH coninutul locaiei urmtoare
MOV ES:[3AC2],DL ;ncarc n locaia cu adresa efectiv 3AC2 din
extrasegment coninutul registrului de 8 bii 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 numr
eticheta EQU ir
eticheta = numr
Dac se folosete 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
reasignri, dar nu permite asignarea cu iruri.

Exemplu:
adresa1 equ 20h
adresa2 equ adresa1+2
adresa3=30h
.
.
mov AL,DS:[adresa1] ; ncarc n AL continutul
;locaiei 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

53
12.2 Adresarea direct

n caz c se utilizeaz numele unei locaii declarate n cadrul segmentului de date, nu


mai sunt necesare parantezele drepte i un alt registru. Adresa de segment este coninut
implicit n DS, dac nu se specific altfel.
Aceasta form este posibil pentru segmentul de date, care poate fi declarat n partea
iniial a programului, fr ca programatorul s se preocupe de plasarea sa exact n memorie.
Se utilizeaz directive de rezervare a unor locaii de memorie, DB, DW, etc. care vor fi
prezentate pe larg mai trziu. Adresa va fi calculat automat de asamblor i nlocuit n
instruciune cu valoarea numeric corespunztoare.

Exemplu:
.model small
.stack 100h
.DATA
locaie db 33,44,55,66 ;Stabilete adresa
;"locaie" 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
;locaia 02 din DS
MOV locatie+1, byte ptr AL ;ncarc n locaia 01
;coninutul lui AL
.
.
.
Se observ c nu este necesar punerea operandului de adresa n paranteze, prin
eticheta declarat dup directiva .DATA nelegndu-se implicit coninutul unei locaii de
memorie.
Observaie: Instruciunile care urmeaz imediat dup directiva .code din exemplul de
mai sus ( cele cu caractere bold) sunt necesare ntotdeauna atunci cnd se declar un segment
de date. Asamblorul i linkeditorul plaseaz acest segment acolo unde au memorie liber i
adresa acestui segment trebuie incrcat explicit n registrul de segment de date, DS. Cum
acest registru nu admite o ncrcare direct cu o constant, aceast adres, cunoscut de
asamblor prin simbolul @dat se ncarc nti 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 totui n astfel de cazuri):

MOV AX, seg locaie

54
Programul Turbo Debugger, dac are implicit afiata o fereastra Dump, dup rularea
instruciunii MOV DS,AX va afia automat zona respectiv cu registrul de segment ES.
Pentru a afia chiar segmentul de date, trebuie dat o noua comanda Dump din submeniul
View, atunci cnd 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 instruciune registrul din care se va lua adresa efectiv. Dup cum
rezulta din formula, registrul este unul din urmtoarele: BX,BP,SI,DI.

Exemplu:
MOV AL, [BX] ;ncarc n AL coninutul ;locaiei de memorie a carei
adresa efectiv este ;coninut n BX i adresa de segment coninut n ;registrul implicit DS.
MOV [BP],CX ;ncarc coninutul lui CL n ;locaia de memorie a carei
adresa efectiv este ;coninut n BP i adresa de segment coninut n ;registrul implicit SS,
iar coninutul lui CH n locaia ;de memorie urmtoare.

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
instruciune. Adresa de segment va fi dat de DS, cu excepia 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 coninutul locaiei a carei adresa este dat de
coninutul lui DI la care se adun 31, iar adresa de segment este dat de DS.
MOV [BP+1226],CX; Transfer pe CL n locaia a carei adresa este dat de
coninutul lui BP la care se aduna 1226, iar adresa de segment este dat de SS, iar CH n
locaia urmtoare.
Aceste instruciuni 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 numrul coninut
n registrul SI printr-o instruciune 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 instruciune (una din
cele 4 variante posibile conform expresiei generale).
Registrul de segment implicit este DS cu exceptia cazului cnd este menionat BP, n
care caz segmentul este cel de stiv, cu adresa coninut n SS.

55
Modul de adresare prin registru cu deplasare se recomand pentru adresarea
elementelor irurilor i tabelelor. De exemplu, dac s-a incrcat anterior constanta numeric
TAB ntr-un registru de baza ( de exemplu MOV BX,2100) se poate adresa elementul de
tabel cu numrul coninut n registrul SI printr-o instruciune 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 instruciune.
Registrul de segment implicit este DS cu exceptia cazului cnd este menionat BP, n care
caz segmentul este cel de stiv, cu adresa coninut 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 conine numrul unei linii nmulit cu numrul total de coloane se poate
adresa elementul din linia respectiv avnd indicele (numrul de coloan) coninut n registrul
SI, printr-o instruciune 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
dorete 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 adresri imediate urmtoarele


operaii:
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

56
Se va scrie la adresa 30 coninutul lui CH
Se va scrie la adresa 31 coninutul lui DX

P2.Se va realiza un program care are urmtoarele date iniiale: constantele de un octet
A=11 i B=22 i constantele de doi octei C=3344 i D=5566.Se va calcula in BX expresia
(C+D)-(A+B).

P 3.Se vor ncarca registrele n felul urmtor: 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 urmtoare.
Indicaii:
- 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 urmtor: 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 instrunciunea de adunare a unui registru cu o constant, se vor ncarc 4
locaii succesive de memorie ncepnd de la 10, cu numere cresctoare de un octet, ncepnd
cu 1.
P 6. Acelasi program ca la punctul.5, dar cu numere pe doi octei ncepnd cu 1000.
P 7. Acelasi program ca la punctul 5, dar cu numere pe un octet multipli de 5.

57
58
Bibliografie

1. BAICU, Floarea, Complemente de microelectronic, Editura Enciclopedic, Bucureti 2007


2. BAICU, Floarea, Arhitectura calculatoarelor, Editura Universitar Bucureti 2014
3. BAICU, Floarea, BAICU Liviu-Gabriel Sisteme de operare, Editura Printech, Bucureti 2013
4. BAICU, Floarea, Complemente de electronic ndrumar de aplicaii virtuale, Editura Victor,
Bucureti, 2005
5. BAICU, Floarea, BAICU Liviu-Gabriel, Memoria adresabil prin coninut (CAM). Arhitectur
i avantaje, Analele Universitii Hyperion din Bucureti, Electronic i Calculatoare, Editura Victor,
Bucureti 2013
6. BAICU, Floarea, Pori logice virtuale, Analele Universitii Hyperion din Bucureti,
Electronic i Calculatoare, Editura Victor, Bucureti, 2006
7. BARUCH, Zoltan Francisc, Arhitectura Calculatoarelor Universitatea Tehnic din Cluj-
Napoca
8. GHEORGHIU, Anca, SPNULESCU, I., Programarea calculatoarelor electronice, Editura
Victor, Bucureti, 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 romn, Editura Tehnic, Bucureti, 1997
11. POSDRESCU, E., Analiza i sinteza dispozitivelor i circuitelor numerice, Editura
MatrixRom, Bucureti, 2009
12. OROS, Horea, Arhitectura Sistemelor de Calcul, Universitatea din Oradea - Facultatea de
tiine, 2009
13. ROMNC, Mihai, SZEKELY, Gyula, Calculatoare Arhitectur i organizare, 2004, Editura
Universitii Transilvania, Braov, 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. SPNULESCU, I., SPNULESCU, S. I., Circuite integrate digitale i sisteme cu
microprocesoare, Editura Victor, Bucureti, 2002
16. SPNULESCU, S.I., Programarea in limbaj de asamblare a microprocesoarelor, Editura
Victor, Bucureti, 2004, 237 pag
17. William STALLINGS, Operating Systems (4th edition), Prentice-Hall 2001
18. TEFAN, Gh., Circuite i sisteme digitale, Editura Tehnic, Bucureti, 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 romn, Editura Tehnic, Bucureti, 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 romn, Editura Teora, Bucureti, 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

59
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

60

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