Documente Academic
Documente Profesional
Documente Cultură
Microprocesorul a aprut pentru prima dat n jurul anului 1970 i a fost folosit pentru
prima dat la calculatoarele de buzunar. n prezent el, microprocesorul, este folosit din ce n
ce mai des i reprezint elementul de baz a unui computer.
Microprocesorul reprezint unitatea central de prelucrare a informaiei dintr-un
sistem de calcul. El este realizat din unul sau mai multe circuite integrate. Circuitele integrate
sunt dispozitive microelectronice care cuprind de la zeci la zeci de milioane de componente
(rezistoare, diode, tranzistoare etc.) care sunt asociate n uniti funcionale ca atare, nu ca i
piese separate, care se prezint sub forma unuia sau a mai multor cipuri.
Primul microprocesor a fost integrat ntr-un calculator de buzunar n jurul anului 1970
i se baza pe o structur de 4 bii. Bitul este unitatea de msur pentru caitatea de informaie.
De atunci i pn n prezent microprocesoarele au evoluat semnificativ ele ajungnd chiar la
existena de multi-microprocesoare care au o putere de calcul sporit. Aceste multimicroprocesoare sunt create nu dintr-un singur cip ci din mai mult cipuri integrate n acelai
microprocesor. n ziua de azi exist microprocesoare bazate pe 4, 8, 16, 32 i 64 de bii.
ntr-un computer, care reprezint un aparat/dispozitiv programabil care primete o
serie de instruciuni i pe baza acelor instruciuni efectueaz anumite comenzi,
microprocesorul se afl pe placa de baz i reprezint elementul de baz a unui computer,
datorit faptului c el prelucreaz toate informaiile venite de la celelalte componente aflate n
computer. Pe lng aceasta el mai are rolul de a decoda i a efectua operaiile cerute de
programele aflate pe acel computer.
Microprocesorul computerului este numit CPU (Central Processing Unit= Unitatea
Principal de Prelucrare). n domeniul tehnologiei informaiilor (IT) CPU-urile sunt cele pe
32 i 64 de bii. Revoluia recent a microprocesoarelor este reprezentat de apariia acelor
multi-microprocesoare care au o putere de calcul foarte mare i care pot efecta o mulime de
instruciuni ntr-un interval de timp foarte scurt. Acestea pot conine de la 2 cipuri pn la 4
cipuri, fa de cele obisnuite care conin un singur cip.
Cele mai cunoscute i utilizate microprocesoare sunt cele create de dou mari firme n
domeniul IT, acestea fiind: AMD (Advanced Micro Devices) i Intel. Printre cele mai recente
microprocesoare produse de aceste firme se numr: AMD Phenom (4 cipuri), AMD Opteron
(4 cipuri), AMD Athlon 64 X2 (2 cipuri), Intel Core 2 Duo (2 cipuri), Intel Core 2 Quad (4
cipuri). Datorit faptului c multi-microprocesoarele conin mai multe cipuri acestea au un
pre de cumprare mai ridicat dect cele obinuite, bazate pe un singur cip.
Astfel putem spune c fr microprocesor, n ziua de astzi, nu are exista computerele,
iar fr computer transmiterea informaiei ar fi mult mai dificil. Astfle aceast component
este un lucru esenial al zilelor noastre.
Microprocesoarele difer ntre ele prin numrul de instruciuni pe care le pot executa,
viteza de execuie i cantitatea de memorie pe care o pot folosi. Ele sunt caracterizate de tip,
frecven de lucru i lungimea cuvntului.
Segmentarea memoriei
Microprocesoarele 8086 i 8088 pot adresa 1 MB de memorie care sunt grupai n mai
multe segmente. Un segment de memorie este o unitate logic de memorie care poate avea cel
mult 64 KB. Fiecare segment de memorie este alctuit din mai multe locaii de memorie
consecutive i poate fi considerat ca o unitate care poate fi adresat independent. Fiecare
segment este caracterizat printr-o adres de baz care reprezint adresa locaiei de nceput a
segmentului i este exprimat n numr de blocuri de 16 bytes, numite paragrafe. Ca urmare,
toate segmentele ncep de la o adres care este un multiplu de 16. Dou segmente se numesc
adiacente dac adresa de nceput a unuia dintre ele este cu 1 mai mare dect adresa de sfrit a
celuilalt. Dou segmente sunt parial suprapuse dac adresa de nceput a unuia se afl ntre
adresa de nceput i cea de sfrit a celuilalt. Dou segmente sunt suprapuse complet dac
adresele lor de nceput coincid. n toate celelalte cazuri segmentele se numesc disjuncte.
n funcie de necesiti o anumit aplicaie (program) utilizeaz segmentele n mod
diferit. Segmentele care pot fi adresate n mod curent ofer 64 KB pentru cod, 64 KB pentru
stiv i 64 KB pentru date. Pentru a utiliza un spaiu de lucru mai mare, trebuie gestionate
segmentele de memorie n funcie de necesiti.
Adrese fizice i adrese logice
Adresa fizic este o valoare reprezentat pe 20 de bii care identific n mod unic
fiecare locaie de memorie aflat n spaiul de adresare. Ca urmare aceast adres poate fi un
numr cuprins ntre 0 i 220-1.
Pentru a nu depinde de locul n care este pstrat codul n memorie, programele
folosesc adresele logice n locul celor fizice. Adresa logic este dat de o valoare de baz de
segment i o valoare de deplasament. Valoarea de baz a segmentului indic adresa primului
byte al segmentului care conine locaia i este exprimat n paragrafe. Deplasamentul
reprezint numrul de octei dintre locaia respectiv i nceputul segmentului. Att adresa de
baz ct i deplasamentul sunt reprezentate pe 16 bii.
Este posibil ca mai multe adrese logice s localizeze o aceeai locaie de memorie atunci cnd
aceasta face parte din segmente diferite. De exemplu adresele logice F000:FFF0 i FFFF:0000
indic aceeai locaie de memorie i anume cea care are adresa fizic FFFF0. Generarea
adresei fizice cu ajutorul adresei logice se realizeaz nmulind cu 16 valoarea bazei
segmentului (shiftare spre stnga cu 4 poziii) i adugnd deplasamentul.
Mecanisme de adresare
Calculele de adres sunt efectuate de unitatea de interfa cu magistrala, cu ajutorul unei
uniti de calcul, specifice, numit ADR i a unor regitri speciali fiecare avnd o capacitate de
16 bii.
Primele generaii de calculatoare aveau o memorie de 1 MB. Primele 10 blocuri de memorie
(640 KB) formeaz memoria RAM, urmtoarele 5 fiind folosite pentru memoria ecran i
reinerea coninutului memoriei ROM n timpul funcionrii sistemului. Pentru a putea
codifica n mod unic fiecare din cele 220 de locaii de memorie diferite, o adres trebuie s fie
reprezentat pe 20 de bii. Magistrala de adrese are capacitatea necesar pentru a transmite cei
20 de bii deodat, ns nu se poate spune acelai lucru despre magistrala de date care are o
capacitate de 16 bii. Prin convenie adresa de nceput a fiecrui segment este un multiplu de
16, iar un segment poate avea cel mult 64 KB. Datorit acestui fapt cei mai nesemnificativi 4
bytes ai adresei de nceput a segmentului vor fi 0 (n baza 2 un multiplu de 16 are ultimele 4
cifre ntotdeauna 0). Din acest motiv aceti 4 bii nu mai trebuie memorai i ca urmare
regitrii de segment vor conine numai restul celor 16 bii. Pentru a specifica deplasamentul
(offset) sunt folosii tot 16 bii.
O adres virtual este compus din dou numere reprezentate fiecare pe 16 bii, unul
reprezentnd coninutul registrului de segment, iar al doilea deplasamentul n cadrul
segmentului. Adresa fizic este calculat de ctre BIU nmulind cu 16 primul numr i
adunnd la rezultat cel de-al doilea numr.
Mecanismul descris este tipic pentru procesorul 8086 i poart denumirea de mod real
(Real Adress Mode). La microprocesoarele 80286 apare nc un mod de adresare, denumit
mod protejat (Protected Virtual Address Mode), iar o dat cu apariia procesorului 80386 sunt
introduse modul paginat i modul virtual 8086. Aceste noi modalitii de adresare au fost
introduse pentru a permite adresarea de ctre un calculator IBM-PC a mai mult de 1 MB de
memorie.
Implementarea stivei
Stiva este o zon de memorie folosit pentru a stoca datele temporare. Deosebirea
esenial dintre stive i alte segmente de memorie este faptul c datele de pe stiv sunt stocate
ncepnd de la adresele mai mari de memorie i continund spre adrese mai mici. La nceput
stiva este un segment de memorie neiniializat care are o dimensiune fix. n timp ce sunt
adugate informaii n stiv dimensiunea stivei "crete" de la adresele mari spre adresele mai
mici, iar cnd sunt eliminate informaii, stiva se "micoreaz" n sens invers.
Numrul de stive este limitat numai de spaiul de memorie disponibil n sistem, iar
dimensiunea unei stive nu poate depi 64 KB. Dac se extinde stiva peste aceast
dimensiune, informaiile adugate vor nlocui informaiile de la nceputul stivei. La un
moment dat nu poate fi adresat direct dect o stiv, ea purtnd denumirea de stiv curent.
cod binar
88h
P=1
AC = 0
Z=0
S=1
Ex: 233 + 248 = 481 cod zecimal; 233/16 = 14 si 9 rest, 248/16 = 15 i 8 rest
E9h+F8h cod hexazecimal;
1110 1001
1111 1000
C = 11 1110 0001
+
P=1
AC = 1
cod binar
Z=0
S=1
Imultirea
Ex: 7Bhx91h = 11h cod hexazecimal;
0111 1011
x 1001 0001
C = 00001 0001
cod binar
11h
P=1
AC = 0
Z=0
S=0
SAU inclusiv
Ex: 78h 91h = 88 h cod hexazecimal;
0111 1011
1001 0001
C = 01110 1010
cod binar
88h
P=0
AC = 0
Z=0
S=1
Ex: 7Bh 9Eh cod hexazecimal;
0111 1011
1001 1110
C = 1 11101 1101
-
P=1
AC = 1
Z=0
S=1
cod binar
Instruciuni de transfer - 12
Instruciuni aritmetice 19
Instruciuni logice 20
Instruciuni de salt 27
Instruciuni auxiliare 12 15
1. Intruciuni de transfer:
a) MOV r1, r2 ceia ce ar nsemna (r 1) (r2) se va transfera coninutul
registrului r2 n registrul r1. n loc de r1 i r2 poate fi oricare din regitrii B, C, D, E, H,
L; ex: MOV B,D D se include n B.
b) 1. MOV r,M (r)(M(H,L)) coninutul memoriei adresa creia este indicat
de perechea de regitri H,L se transfer n registrul r
2. MOV M,r (M (H,L))(r) coninutul registrului r se va transfera pe
adresa indicat de regitrii H, L.
H baytul inferior al adresei, L baytul exterior al adresei
c) MVI r,data8 (r)(B2) coninutul baztului 2 se transfer n registrul r (r ia
valoarea unuia din register B, C, D, E). ex: MVI H,83h registrul H va lua valoarea
83.
d) MVI M,data8 (M(H,L))(B2) coninutul baytului 2 se transfer n memoria
adresa careia este indicat de perechea de regitri H,L.
e) LXI rp,data16 (rp regitri perechi); (rH,rL) (B3,B2); H-superior, L-inferior;
- coninutul baitului 3 i baztului 2 al instruciunii se transfer n regitrii perechi r p;
ex: LXI D,8257h - D82h E57h
f) LDA addr (A) (M(B2,B3)) coninutul de memorie adresa creia este
indicat de baytul 2, baytul 3 al instruciunii se transfer n accumulator; LDA 85 70 h
(A)(33h)
B1 B3 B2
g) STA addr(M(B2,B3))(A) coninutul acumulatorului este transferat n
memorie adresa careia este indicat de baytul 2, baytul 3 al instruciunii.
15h ACh
LDA8201h
(A) (M(8201h))
SUI 73h
(A) (A)-(73h)
MOV B,A
(B) (A)
MOV A,D
(A) (D)
SUB E
(A) (A)-(E)
ADD A,B
(A) (A)+(B)
STA 8200
(M(8200h)) (A)
RST 32h. nchide programul
A=18h
A=18h-73h=A5h
B=A5h
A=15h
A=15h-ACh=69h
A=A5h+69h=0Eh
(M(8200h)) = 0Eh
00111011
2
10011101
1
11001110
0
01100111
17. RLC deplasarea acumulatorului la stnga.
A
FC
00111011
1
1
2
01110110
11101100
11011001
FC
0
1
00111011
00011101
1
0
10001110
11000111
FC
1
1
1
2
00111011
01110110
11101100
11011000
2
Ex: Rg B = (Rg A Rg H)
13h
SUB H
RRC
RRC
ORA L
MOV H,A
LDA 8200h
SUI 83h
RLC
RLC
RLC
ANA C
ADD H
MOV B,A
RST 32h
99h
3
Rg L+(Addr8200h 83h)
11h
31h
Rg C
15h
(A)(A) - (H)
A= 7Ah = 01111010
00111101
A=3Dh
10011110
A=9Eh
(A)(A)
(L)
10011110
9Eh
00010001
11h
10011111 =
9F
A= 9F
(H) (A)
H=9F
(A) (M(8200))
A=31h
(A) (A)-(83h)=31h-83h A=AEh
10101110 01011101
A=5D
01011101 10111010
A=BAh
10111010 01110101
A=75h
(A) (C) (A)
01110101
75h
00010101
15h
00010101
= 15h
A=15h
(A) (A) + (H) =15h+9Fh A=B4h
(B) (A)
B=B4h
JMP M1
b) condiionate 1. JC addr
FC=1 are loc salt la adresa indicat de baytul 2 i
baytul 3 atunci cnd fanionul C=1, n caz contrar se execut instruciunea urmtoare.
da
C=1
nu
2. JNC addr FC=0 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul C=0, n caz contrar se execut instruciunea urmtoare.
3. JZ addr FZ=1 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul Z=1, n caz contrar se execut instruciunea urmtoare.
4. JNZ addr
FZ=0 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul Z=1, n caz contrar se execut instruciunea urmtoare.
5. JM addr FS=1 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul S=1, n caz contrar se execut instruciunea urmtoare.
6. JP addr FS=0 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul S=0, n caz contrar se execut instruciunea urmtoare.
7. JPE addr
FP=1 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul P=1, n caz contrar se execut instruciunea urmtoare.
8. JPO addr FP=0 are loc salt la adresa indicat de baytul 2 i baytul 3 atunci
cnd fanionul P=0, n caz contrar se execut instruciunea urmtoare.
Instruciuni de chemare a subrogramelor
CALL addr - necondiionat
RET
- de rentoarcere
JC
- de chemare a subrogramului condiionat
CR
- de rentoarcere din subrogram.