Sunteți pe pagina 1din 47

Arhitectura Calculatoarelor 1

Arhitectura Calculatoarelor
Introducere
Un calculator numeric este constituit dintr-un ansamblu de resurse fizice (hardware) i de programe
de sistem (software de sistem) care asigur prelucrarea automat a informaiilor !n conformitate cu
algoritmii specificai de utilizator prin programele de aplicaii (software utilizator)"
Arhitectura calculatorului cuprinde dou componente principale#
a) arhitectura setului de instruciuni (A$%)&
b) implementarea mainii cu cele dou sub - componente#
organizare&
hardware"
Arhitectura setului de instruciuni este ceea ce trebuie s tie un programator pentru a scrie programe !n
limba' de asamblare respecti( pentru a concepe i construi un program de tip compilator sau rutine
destinate sistemului de operare"
)ermenul organizare include aspectele de ni(el !nalt ale unui proiect de calculator ca de e*emplu
structura intern a UC+ (unitatea central de procesare microprocesor) structura i organizarea
magistralelor organizarea sistemului de memorie" ,oiunea de hardware (resurse fizice) e utilizat pentru
a ne referi la aspectele specifice ale implementrii calculatorului" Acestea includ proiectul logic de detaliu
i tehnologia de realizare a mainii de calcul"
1. Reprezentarea func ional a unui calculator
Un calculator poate fi descris at-t sub aspect funcional c-t i structural" Circuitele electronice ale unui
calculator recunosc i e*ecut doar un set limitat de instruciuni elementare codificate !n form binar"
Aceste instruciuni sunt doar succesiuni de bii (1 i .) pe care procesorul le !nelege - decodific i le
e*ecut" %ndiferent de tipul de main instruciunile recunoscute sunt rareori mai complicate dec-t
/)anenbaum0#
adun dou numere&
(erific dac un numr este egal cu zero&
copiaz date dintr-o zon a memoriei calculatorului !n alt zon"
1e e*emplu la procesoarele %ntel din seria 2.*23 codul binar al instruciunii urmtoare#
.... .1.. .... .11.
comand adunarea coninutului unui registru intern de 2 bii (numit registrul al) cu (aloarea imediat 3"
Adesea c-nd utilizatorul este obligat s lucreze cu (alori numerice binare se folosete reprezentarea !n
he*azecimal care este mai compact i mai uor de citit" Codul !n he*azecimal al instruciunii
corespunztoare succesiunii binare de mai sus este .4 .3 he*" 5i acest mod de scriere a instruciunilor
este !ns complicat pentru programator"
$crierea instruciunilor se poate realiza la !nceput !n limba' natural transpun-ndu-se apoi !ntr-
un limba' artificial numit limbaj de programare"
Limbajul de programare reprezint un set de instruciuni !mpreun cu regulile de organizare ale
acestora !ntr-un program" )otalitatea regulilor de scriere ale instruciunilor reprezint sintaxa limba'ului
iar totalitatea regulilor prin care se asociaz o semnificaie instruciunilor reprezint semantica limba'ului"
Calculatorul poate e*ecuta numai instruciuni e*primate intern sub forma unor iruri de cifre
binare" +rogramele !n care instruciunile sunt scrise sub aceast form se numesc programe !n limbaj
main" 6imba'ul main este caracteristic fiecrui tip de calculator" $crierea i introducerea programelor
sub aceast form este dificil" +entru simplificarea scrierii programelor au fost create limba'e !n care
fiecrui cod de instruciune i s-a ataat un nume mnemonic" Acest mod de reprezentare a instruciunilor
main se numete limbaj simbolic sau limbaj de asamblare" Acest limba' permite utilizatorului s
realizeze codificri simbolice ale instruciunilor i ale adreselor de memorie"
+entru a se e*ecuta un program !n limba' de asamblare acesta trebuie translatat !n prealabil !n
limba' main printr-un proces numit asamblare" +rogramul care se translateaz se numete program
Arhitectura Calculatoarelor 7
surs iar cel rezultat !n urma translatrii se numete program obiect" 8peraia de translatare a
programului surs !n program obiect este e*ecutat de un program special numit asamblor"
8 instruciune !n limba' de asamblare corespunde unei instruciuni !n limba' main deosebirea dintre ele
const-nd numai !n modul de reprezentare" 1eci fiecare instruciune !n limba' de asamblare este
translatat !ntr-o singur instruciune !n limba' main"
Un limba' de asamblare este specific unui calculator astfel !nc-t trebuie s secunoasc
instruciunile i organizarea intern a acelui calculator" 1in acest moti( s-au elaborat limba'e pentru
programe care se pot e*ecuta pe orice calculator" Acestea sunt limba'e orientate pe probleme sau limbaje
de nivel nalt spre deosebire de limba'ele de asamblare care sunt limba'e orientate pe calculator sau
limbaje de nivel sczut" Asemenea limba'e de ni(el !nalt sunt +ascal C 6%$+ +9868: etc"
Unei instruciuni !ntr-un limba' de ni(el !nalt !i corespunde o succesiune de instruciuni !n limba'
main" )ranslatarea !n limba'ul main se poate realiza cu a'utorul unui compilator care genereaz din
programul surs un program executabil acesta fiind e*ecutat dup ce !ntregul program a fost compilat"
8 alt posibilitate este utilizarea unui interpretor care translateaz fiecare instruciune !n limba'ul
de ni(el !nalt !ntr-o succesiune de instruciuni main acestea fiind e*ecutate imediat. ;n acest caz nu se
genereaz un program e*ecutabil" <iteza de e*ecuie este !ns redus deoarece fiecare instruciune
trebuie interpretat chiar dac ea este e*ecutat !n mod repetat"
Uneori este mai con(enabil s se considere c e*ist un calculator ipotetic sau o main virtual a
crui limba' main este un anumit limba' de ni(el !nalt" Un asemenea calculator ar e*ecuta direct
instruciunile limba'ului de ni(el !nalt fr a fi necesar utilizarea unui translator (compilator) sau
interpretor" Chiar dac implementarea unei maini (irtuale care s lucreze direct cu un limba' de ni(el
!nalt ar fi prea costisitoare se pot scrie programe pentru aceast main deoarece aceste programe pot fi
translatate sau interpretate cu un program care poate fi e*ecutat direct de calculatorul e*istent"
Modelul unui calculator numeric
Un model posibil al unui calculator numeric modern reprezint o ierarhie de maini (irtuale pe
mai multe ni(ele (=igura 1"1)"
=igura 1"1 - %erarhia de ni(ele a unui calculator modern
,i(elul . numit nivelul logicii digitale este reprezentat de componentele hardware ale calculatorului
(maina fizic)" Circuitele acestui ni(el e*ecut instruciunile main ale ni(elului 1" >lementele de baz
ale acestor circuite sunt porile logice fiecare poart fiind format la r-ndul ei dintr-un numr de
Arhitectura Calculatoarelor ?
tranzistoare" 8 poart logic are una sau mai multe intrri digitale (semnale reprezent-nd . logic sau 1
logic) i are ca ieire o funcie simpl a acestor intrri de e*emplu 5% logic $AU logic" ,i(elul 1 numit
nivelul de microprogram interpreteaz instruciunile ni(elului 7 pentru fiecare instruciune a acestui
ni(el e*ist-nd c-te un microprogram"
=iecare microprogram definete !n mod implicit un limba' de ni(el 7 i o main (irtual" 1e
obicei e*ist multe similariti !ntre mainile (irtuale de ni(el 7 chiar i !n cazul calculatoarelor diferiilor
productori" Acest ni(el se numete nivelul mainii convenionale (@ardware abstraction laAer B @A6C)"
Atunci c-nd se descrie setul de instruciuni al unui calculator se descrie de fapt maina (irtual de ni(el
7 i nu maina real de ni(el 1" $unt descrise deci instruciunile interpretate de ctre microprogram i nu
instruciunile e*ecutate direct prin hardware"
1e menionat c la anumite calculatoare ni(elul de microprogram lipsete" 6a aceste calculatoare
instruciunile mainii con(enionale sunt e*ecutate direct de circuitele electronice ale ni(elului ." ,i(elul
? este de obicei un ni(el hibrid ()anenbaum) deoarece multe din instruciunile limba'ului su sunt
prezente !n cadrul instruciunilor ni(elului 7" >*ist !n plus un set de noi instruciuni o organizare diferit
a memoriei posibilitatea de e*ecuie a mai multor programe !n paralel i alte faciliti" ,oile faciliti
adugate la ni(elul ? sunt realizate cu a'utorul unui interpretor numit sistem de operare iar instruciunile
identice cu cele ale ni(elului 7 sunt e*ecutate direct prin microprogram" ,i(elul ? este numit nivelul
sistemului de operare" Un sistem de operare reprezint un ansamblu de programe care asigur e*ploatarea
optim a resurselor hardware i software ale unui sistem de calcul"
$istemele de operare au fost create pentru simplificarea acti(itii de programare utilizarea optim
a posibilitilor de lucru ale echipamentelor i reducerea inter(eniei utilizatorilor !n cursul e*ecuiei
programelor" ,i(elele .-? nu sunt destinate utilizrii directe de ctre programatorii obinuii ci pentru
rularea translatoarelor i interpretoarelor scrise de programatorii de sistem" ,i(elul 4 i ni(elele
superioare sunt destinate programatorilor de aplicaii"
,i(elul 4 este nivelul limbajului de asamblare" +rogramele scrise !n limba' de asamblare sunt
translatate !n limba'ul ni(elului 1 7 sau ? i apoi interpretate de ctre maina (irtual corespunztoare"
,i(elul D const din limba'ele destinate programatorilor de aplicaie fiind numit nivelul limbajelor de
nivel nalt" +rogramele scrise !n aceste limba'e sunt translatate !n limba'ele ni(elului ? sau 4 cu a'utorul
compilatoarelor sau interpretoarelor" ,i(elul 3 reprezint nivelul aplicaiilor" Const din colecii de
programe destinate unor domenii specializate de e*emplu pentru administraie economie proiectare
asistat de calculator grafic etc"
=iecare ni(el reprezint o abstractizare distinct cu diferite obiecte i operaii" $etul tipurilor de
date a operaiilor i facilitilor fiecrui ni(el reprezint arhitectura ni(elului respecti(" Arhitectura
trateaz acele aspecte care sunt (izibile utilizatorului ni(elului respecti( ca de e*emplu dimensiunea
memoriei disponibile" Aspectele de implementare ca de e*emplu tehnologia utilizat pentru
implementarea memoriei nu fac parte din arhitectur" Arhitectura calculatorului reprezint studiul
proiectrii acelor pri ale unui sistem de calcul care sunt (izibile pentru programatori"
2 Arhitectura Intel8086.
2.1 No iuni generale. Modelul program.
;n Assembler calculatorul este (zut la ni(elul hardware# adrese fizice de memorie registre
!ntreruperi etc" $unt necesare unele noiuni pregtitoare"
Unitatea de baz a informaiei memorate !n calculator este bitul. Un bit reprezint o cifr binar (de aici
i numele care e o prescurtare de la binarA digit) deci poate a(ea (alorile . sau 1" Eodelul hardware
corespunztor este acela de bitabil. Un bistabil este deci un circuit electronic cu dou stri stabile
codificate . i 1 capabil s memoreze un bit de informaie"
Un grup de bistabili formeaz un regitru. 1e e*emplu 2 bistabili formeaz un registru de 2 bii"
%nformaia care se poate memora !ntr-un asemenea registru poate fi codificat !n binar de la (aloarea
........ (toi biii egali cu .) p-n la (aloarea 11111111 (toi biii egali cu 1)" >ste uor de (zut c
numrul combinaiilor care pot fi memorate este 7D3 (7 la puterea a 2-a)" ;n general un registru de n bii
(a putea memora 7
n
combinaii distincte" Aceste combinaii se numesc octe!i sau b"te (dac n F 2)
respecti( cu#inte (dac n F 13 ?7 etc)"
Eemoria unui calculator este (zut ca o succesiune de octei" =iecare octet are asociat o adres
de memorie" +entru a putea adresa memoria e ne(oie de un registru de adrese a crui lungime determin
dimensiunea ma*im a memoriei" 1ac a(em un regsitru de adrese de 2 bii atunci (om putea adresa 7
2
Arhitectura Calculatoarelor 4
octei de memorie" +rocesorul 2.23 are un registru de adrese de 7. de bii deci poate adresa 7
7.
octei de
memorie (sau 1 megaoctet de memorie)" Arhitectura procesorului 2.23 din punctul de (edere al
programului utilizator este ilustrat schematic !n figura 7"1" $unt figurate registrele accesibile prin
program"
=igura 7"1 - 9egistrele procesorului 2.23
)oate registrele sunt de 13 bii" 8 serie de registre (AG HG CG 1G) sunt disponibile i la ni(el de octet
prile mai semnificati(e fiind A@ H@ C@ i 1@ iar cele mai puin semnificati(e A6 H6 C6 i 16"
1enumirile registrelor sunt#
AG - registru acumulator
HG - registru de baz general
CG - registru contor
1G - registru de date
H+ - registru de baz pentru sti( (base pointer)
$+ - registru indicator de sti( (stacI pointer)
$% - registru inde* surs
1% - registru inde* destinaie
9egistrul notat =6A:$ cuprinde flagurile procesorului sau bistabililor de condiie iar registrul %+
(instruction pointer) este registrul de instruc iuni"
1enumirile registrelor de segment sunt#
C$ - registru de segment de cod (code segment)
1$ - registru de segment de date (data segment)
$$ - registru de segment de sti( (stacI segment)
>$ - registru de segment de date suplimentar (e*tra segment)
$e obser( c denumirile registrelor de segment corespund zonelor principale ale unui program
e*ecutabil" Astfel perechea de registre (C$#%+) (a indica totdeauna adresa urmtoarei instruciuni care se
(a e*ecuta iar perechea ($$#$+) indic totdeauna adresa (-rfului sti(ei" 9egistrele 1$ i >$ sunt folosite
pentru a accesa date"
9egistrul de flaguri (bistabili de condiie) al procesorului 2.23 are configuraia din =igura 7"7" 8
serie de flaguri sunt flaguri de stare# acestea sunt poziionate la . sau la 1 ca urmare a unor operaii
aritmetice sau logice" Celelalte flaguri controleaz anumite operaii ale procesorului"
$emnificaia flagurilor este urmtoarea#
C= (CarrA =lag bistabil de transport) - semnific un transport sau un !mprumut dinJ!n bitul cel mai
semnificati( al rezultatului de e*emplu la operaii de adunare sau de scdere"
Arhitectura Calculatoarelor D
=igura 7"7 - 9egistrul de flaguri al procesorului 2.23
+= (+aritA =lag flag de paritate) - este poziionat !n aa fel !nc-t numrul de bii egali cu 1 din
octetul cel mai puin semnificati( al rezultatului !mpreun cu flagul += s fie impar& altfel formulat
suma modulo 7 (G89) a tuturor biilor din octetul c"m"p"s" i a lui += s fie 1"
A= (Au*iliarrA CarrA =lag bistabil de transport au*iliar) - indic un transport sau un !mprumut
dinJ!n bitul 4 al rezultatului"
K= (Kero =lag bistabil de zero) - este poziionat la 1 dac rezultatul operaiei este ."
$= ($ign =lag bistabil de semn) - este poziionat la 1 dac b"c"m"s" al rezultatului (bitul de semn)
este 1"
8= (8(erflow =lag bistabil de depire) - este poziionat la 1 dac operaia a condus la o depire
de domeniu a rezultatului (la operaii cu sau fr semn)"
)= ()rap =lag bistabil de urmrire) - dac este poziionat la 1 se foreaz o !ntrerupere pe un
ni(el predefinit la e*ecuia fiecrei instruciuni& acest fapt este util !n programele de depanare !n care
este posibil rularea pas cu pas a unui program"
%= (%nterrupt =lag bistabil de !ntreruperi) - dac este poziionat la 1 procesorul ia !n consideraie
!ntreruperile hardware e*terne& altfel acestea sunt ignorate"
1= (1irection =lag bistabil de direcie) - precizeaz sensul (cresctor sau descresctor) de (ariaie
a adreselor la operaiile cu iruri de octei sau de cu(inte"
=lagurile C= += A= K= $= i 8= sunt numite flaguri de stare (aritmetice)" =lagurile )= %= i 1= sunt
numite flaguri de control"
+rocesorul 2.23 dispune de adrese pe 7. de bii fiind capabil s adreseze 1 megaoctet de memorie
(7
7.
)" $e pune problema cum se formeaz adresa fizic pe 7. de bii (deci pe D cifre he*a) deoarece toate
registrele procesorului sunt de 13 bii put-nd codifica adrese !n domeniul ....""".====@ (pe 4 cifre
he*a) deci !ntr-un spaiu de ma*im 34 L8"
Eemoria unui sistem cu procesor 2.23 este di(izat !n segmente" Un segment este o zon
continu de memorie de lungime ma*im de 34 L8 care !ncepe la o adres fizic multiplu de 4" Acest
fapt !nseamn c ultima cifr he*a a adresei de !nceput a unui segment este totdeauna ." Ca atare aceast
cifr se poate omite i adresa de segment se poate reprezenta tot pe 13 bii" Adresele de !nceput ale
segmentelor se (or gsi !ntotdeauna !ntr-unui din cele 4 registre de segment"
Adresarea !n interiorul unui segment se realizeaz printr-un deplasament (offset) relati( la !nceputul
segmentului" 1eoarece un segment nu poate depi 34 L8 deplasamentul se poate memora tot pe 13 bii"
1eplasamentul poate fi o constant sau con inutul unui registru care permite adresarea memoriei"
;n concluzie pentru adresarea unui octet de memorie se folosesc dou entiti pe 13 bii# o adres
de segment (coninut obligatoriu !ntr-un registru de segment) i un deplasament" 1eoarece ambele
entiti sunt pe 13 bii se (orbete de adrese (sau pointeri) de ?7 de bii dei adresa fizic este doar pe 7.
de bii"
=ormarea adresei fizice (pe 7. de bii) este realizat automat (prin hardware) de ctre o
component a procesorului conform =igurii 7"?"
Concret adresa fizic se obine prin deplasarea adresei de segment cu 4 bii la st-nga i prin
adunarea deplasamentului" +entru specificarea unei adrese complete (de ?7 de bii) se folosete notaia
(segment#offset) sau (registruMsegment#offset)" 1e e*emplu putem specifica o adres prin (12A?#DH7N)
sau prin (1$#DH7N)"
Arhitectura Calculatoarelor 3
=igura 7"? - =ormarea adresei fizice
)rebuie remarcat faptul c asocierea (segment#offset) - adres fizic nu este biuni(oc deoarece la o
aceeai adres fizic pot s corespund mai multe perechi (segment#offset)" 1e e*emplu perechile
(12A?#DH7N) i (12A7#DH?N) reprezint aceeai adres fizic" !n situaia !n care deplasamentul este redus
la minim adic !n domeniul ."""= corespondena de(ine biuni(oc"
8 adres complet de ?7 de bii este memorat cu offsetul la adrese mici i cu adresa de segment la adrese
mari" Adresele complete se pot obine cu directi(a 11 (1efine 1ouble-Oord)"
2.2 $efinirea egmentelor. %tructura programelor
$egmentele logice con in cele trei componente ale unui program# cod date si sti(" Eodul in care
pot fi specificate segmentele sunt#
definirea simplificata&
definirea completa a segmentelor"
Definirea simplificat a segmentelor
1efinirea simplificata ascunde multe detalii ale definirii segmentelor si utilizeaz acelea i con(en ii
implementate de Eicrosoft in limba'ele de ni(el !nalt"
+entru a scrie un program A$E !ntr-o form simpl se folosesc directi(ele simplificate de
definire a segmentelor" Acestea sunt#
.model mall (precizeaz un model de memorie)
.code (definire de segment de cod)
.tac& n (definire de segment de sti()
.data (definire de segment de date)
end etichet (sf-rit logic al programului)
;n principiu segmentul de cod (a cuprinde programul e*ecutabil (instruciuni) iar segmentul de date
(a cuprinde date definite de utilizator" $egmentul de sti( nu este folosit e*plicit" Comentariile se scriu
folosind simbolul '" Ceea ce urmeaz dup ' p-n la sf-ritul liniei curente este considerat comentariu"
Utiliz-nd directi(e simplificate de segmentare e*cluz-nd abuzul de limba' aa-zisul stil )A$E structura
este#
"E81>6 small
"$)ACL D17
"1A)A
definirea datelor
"C81>
Arhitectura Calculatoarelor N
declarare i definire proceduri
start# mo( a*Pdata
mo( dsa*
program principal
end start
1irecti(a .tac& aloc o zon a(-nd lungimea n (.tac& n) zon fiind definit ca sti( (e*# "stacI
7..h (a aloca un segment de lungime D17 octe i)" 1irecti(a rezer( (nu si ini ializeaz) zona dedicat
sti(ei" Ac iunea de ini ializare este op ional" +utem scrie si "stacI D17"
1irecti(a .code precede segmentul de program" ;ncrcarea acestui segment este realizata automat de
c-tre 18$" %n schimb registrul d (a trebui !ncrcat de c-tre programator"
$imbolul *data (a primi adresa segmentului de date abia dup momentul editrii legturilor" 1ate
pot e*ista si in cadrul segmentului de cod" 9egistrele de segment nu sunt niciodat !ncrcate cu (alori
absolute" $e las in seama sistemului de operare sarcina amplasrii in memorie a segmentelor" 8rdinea
este asigurata tot de c-tre componentele sistemului de operare"
1irecti(a .model definete modul de dispunere in memoria 9AE a segmentelor care alctuiesc un
program" $istemul 18$ admite 3 modele" $istemul 8$J7 mai admite si modelele +,AR-. si
/0R.A$"
Modele de memorie pot fi tinA small medium large sau huge" $emnificaia acestor tipuri este#
tin" - toate segmentele (date cod sti() se pot genera !ntr-un spaiu de 34L8 i formeaz un singur
grup de segmente" $e folosete la programele de tip C8E" )oate salturile apelurile i definiiile de
proceduri sunt implicit de tip ,>A9" Adresarea simbolurilor situate la distanta (=A9) spre deosebire
de cele situate in apropiere (,>A9) (a dura mai multe cicluri main deoarece este (orba de
!ncrcarea celor 7 componente segment si respecti( deplasament"
mall - datele i sti(a sunt grupate !ntr-un singur segment iar codul !n alt segment" =iecare din acestea
nu trebuie s depeasc 34L8" )oate salturile apelurile i definiiile de proceduri sunt implicit de tip
,>A9&
medium - datele i sti(a sunt grupate !ntr-un singur segment (cel mult egal cu 34L8) dar codul poate
fi !n mai multe segmente separate (nu se grupeaz) deci poate depi 34L8" $alturile i apelurile sunt
implicit tip =A9 iar definiiile de proceduri sunt implicit de tip far"
compact - codul generat ocup cel mult 34L8 (se grupeaz) dar datele i sti(a sunt !n segmente
separate (pot depi 34L8)" Apelurile i salturile sunt implicit de tip ,>A9" $e utilizeaz adrese
complete (segment i offset) atunci c-nd se acceseaz date definite !n alte segmente"
large - at-t datele c-t i codul generat pot depi 34L8"
huge - este asemntor modelului large dar structurile de date pot depi 34L8& se utilizeaz adrese
complete normalizate !n care offsetul este redus la minim (!n domeniul . - 1D) ceea ce face ca o
adres fizic s fie descris de o unic pereche (segment offset)"
Definirea complet a segmentelor
1efinirea completa a segmentelor utilizeaz sinta*a#
numeMsegment $>:E>,)
QQQ
numeMsegment >,1$
1ac !n modulul de program codul datele si sti(a nu dep esc fiecare !n parte 34Iocte i atunci
structura general a unui modul de program cu ? segmente logice (de cod (program) date i sti() este#
$egment $$>: $>:E>,)
$ti(
1O 1.. 1U+(C)
Arhitectura Calculatoarelor 2
$$>: >,1$
$egment 1$>: $>:E>,)
de date
definirea datelor
1$>: >,1$
$egment C$>: $>:E>,)
de cod A$$UE> cs#C$>:ds#1$>:ss#$$>:es#1$>:
declarare i definire proceduri
start# mo( a*1$>: & iniializarea registrelor segment se face numai in
mo( dsa* & modulul principal
mo( esa* & dses 1$>:
programul principal
C$>: >,1$ & sf-ritul modulului
>,1 start & adresa tart se include numai in modulul principal
1irecti(a A$$UE> realizeaz o cone*iune simbolic (logic) !ntre definirea instruciunilor i
datelor !n segmente logice (cuprinse !ntre $>:E>,) i >,1$) la momentul asamblrii i accesul la
e*ecuie la instruciuni i date prin registrele de segment"
>tichetele sunt nume simbolice de adrese ce identific instruc iunile" >tichetele pot fi referite !n
alte instruc iuni pentru e*ecutarea salturilor !n program" 1ac referirile la o etichet sunt fcute !n cadrul
segmentului !n care ea este definit atunci se spune ca ea are atributul N.AR .
+entru declararea etichetelor in segmentul de program (etichete adree de intruc!iuni) se utilizeaz
operatorul 1 (e*# $)A9)#)
1irecti(a >,1 marcheaz sf-ritul logic al unui modul de program i e obligatorie !n toate
modulele" )ot ce se gsete !n fiierul surs dup aceast directi( este ignorat la asamblare" =orma
general este#
>,1 /punctMdeMstart0
!n care punctMdeMstart este o etichet sau un nume de procedur care marcheaz punctul !n care se (a da
controlul dup !ncrcarea programului !n memorie"
2.2 /ipuri de date
Bitul
Cel mai mic element de memorare a unei informa ii este bitul !n care se poate memora o cifra
binara . sau 1"
1e obicei informa ia de prelucrat se reprezint pe segmente contigue de bi i denumite tetrade
octe i cu(inte dublu cu(inte Ruadwords si tenbAtes"
Tetrada
)etrada este o sec(en de 4 bi i numerota i .17? de la dreapta la st-nga bitul . fiind cel mai
puin semnificati( iar bitul ? cel mai semnificati(#
1 . 1 1
? 7 1 .
Octetul (Byte)
8ctetul sau bAte este un element de numerotare ce cuprinde o sec(ena de 2 bii" 8ctetul este unul
dintre cele mai importante elemente (celule ) de memorare adresabile" Cei 2 bii ai unui octet sunt
numerotai cu .17"""N de la dreapta la st-nga#
Arhitectura Calculatoarelor S
. 1 1 1 . 1 . 1
N 3 D 4 ? 7 1 .
8ctetul este format din 7 tetrade tetrad inferioara (din dreapta) conine biii . 1 7 ? iar cea
superioara (din st-nga) conine biii 4 D 3 N ai octetului"
Cuvntul(Word)
Cu(-ntul este o sec(ena de 7 octei respecti( 13 bii numerotai de la dreapta spre st-nga astfel
. 1 7 """"""14 1D" Hitul cel mai semnificati( este bitul 1D" +rimul octet(inferior) din cu(-nt conine biii .
1 7 ? 4 D 3 N iar al doilea octet(superior) biii N 2 S 1. 11 17 1? 14 1D"
1 1 1 . . . . 1 1 . . 1 1 . . 1
1D 14 1? 17 11 1. S 2 N 3 D 4 ? 7 1 .
Cu(-ntul poate fi reprezentat printr-un registru de 13 bii sau !n doi octei de memorie" %n
memorie octetul inferior (biii .-N) este memorat la adresa mai mic iar octetul superior (biii 2-1D) la
adresa cea mai mare"
1e e*emplu cu(-ntul 4D3Nh se reprezint intr-un registru de 13 bii sub forma 4D3Nh iar !n
memorie la adresa 1... sub forma 3N4D (octetul 3N la adresa 1... iar octetul 4D la adresa 1..1)"
Dublu cuvnt (Double Word)
8 succesiune de 7 cu(inte (4 octei ?7 bi i) reprezint un dublu cu(-nt" Cei ?7 de bii ai unui
dublu cu(-nt sunt numerota i de la dreapta la st-nga prin . 1 7 """"""?. ?1" Hitul cel mai semnificati(
este bitul ?1 octetul cel mai pu in semnificati( con ine bi ii .-N iar cel mai semnificati( octet (octetul 4)
con ine bi ii 7?-?1"
Un dublu cu(-nt poate fi reprezentat !ntr-un registru de ?7 bi i sau pe 4 octe i consecuti(i de
memorie" %n memorie octetul 1-cel mai pu in semnificati( este memorat la adresa cea mai mica iar
octetul 4-cel mai semnificati( la adresa cea mai mare"
1e e*emplu dublul cu(-nt 17 ?4 D3 N2h aflat la adresa 7... (a fi memorat astfel N2 D3 ?4 17 cu
octetul N2h la adresa 7... iar octetul 17h la adresa 7..?"
Quadord
Tuadword (Rword) este format din 7 dublu cu(inte(4 cu(inte respecti( 2 octei succesi(i de
memorie)" Cei 34 bii ai unui Rword sunt numerota i de la dreapta la st-nga astfel# . 1 7 """"""37 3?" Hitul
cel mai semnificati( este bitul 3?" %n memorie octetul 1 se reprezint la adresa cea mai mica iar octetul 2
la adresa cea mai mare"
Tenbyte (!" octe i)
8 succesiune de 1. octe i formeaz un tenbAte (tb)" Cei 2. de bi i ai elementului sunt numerota i
de la dreapta la st-nga cu . 1 7""""""N2 NS" %n memorie octetul cel mai pu in semnificati( (bi ii .-N) se
reprezint la adresa cea mai mica iar octetul 1. ( bi ii N?-2.) la adresa cea mai mare"
2.3 $efinirea datelor
;n limba'ele de asamblare 2.*23 se poate opera cu anumite tipuri de date recunoscute de
procesor acesta dispun-nd de directi(e (pseudoinstructiuni) specifice pentru definirea lor"
a) 4"te (octet).
Acest tip de date ocupa 2 bi i adic un octet(bAte)" %nformaia dintr-un octet poate fi# un ntreg
fr semn cuprins intre . si 77D un ntreg cu semn cuprins intre B172 si 17N sau un caracter A$C%%"
1efinirea datelor de tip bAte se face cu a'utorul directi(ei 1H(Define !te) care are sinta*a#
5#ariabila6 $4 lita 7 e8preii
unde
-(ariabila opional este un identificator asociat adresei efecti(e a primului octet de memorie
generat corespunztor primei e*presii din lista de e*presii
-lista-e*presii cuprinde e*presii constante(calculabile in momentul asamblrii) si separate prin
(irgula"
=ie directi(ele#
Arhitectura Calculatoarelor 1.
alfa 1H 3D N7h NDo 11.11b 11hU77h .ach
1H -3D VaV VabcV
%n memorie !ncep-nd de la adresa simbolica alfa se (a genera sec(ena de octe i reprezentata in
he*azecimal #
41 N7 ?d 1b ?? ac bf 31 31 37 3?
alfa U. U1 U7 U? U4
<aloarea binara 11.11b (a fi generata la adresa alfaU?"
b) 9:R$ (cu#;nt).
Un cu(-nt ocupa doi octe i (13 bi i) si poate fi reprezentat intr-un registru de 13 bi i sau in 7 octe i
consecuti(i de memorie" ,umerotarea bi ilor in cadrul unui cu(-nt se face de la . la 1D (bitul 1D e bitul
cel mai semnificati( al cu(-ntului iar bitul . este bitul cel mai pu in semnificati() numerotarea se face de
la dreapta la st-nga#
%nformaia memorata intr-un cu(-nt poate fi #
-un !ntreg pe 13 bi i cu semn (bitul 1D este bitul de semn) cuprins intre -7
1D
si 7
1D
B1
- un !ntreg pe 13 bi i fr semn cuprins intre . si 7
13
-sau o adresa de memorie de 13 bi i"
9eprezentarea celor 7 octe i ai cu(-ntului in memorie se face astfel !nc-t octetul cel mai pu in
semnificati( este memorat la adresa cea mai mica" 1e e*emplu# daca (aloarea 7?4Dh este memorata la
adresa 7...h atunci octetul 4Dh se (a afla la adresa 7...h iar octetul 7?h la adresa 7..1h"
:enerarea datelor de tip cu(-nt se poate face folosind directi(a de tip 1O(Define "ord) a crei
sinta*a este #
5#ariabila6 $9 lita de e8preii
unde#
(ariabil opional este un identificator asociat adresei efecti(e a primului cu(-nt de memorie
generat corespunztor primei e*presii din lista de e*presii"
lista de e*presii este o lista de e*presii constante separate prin (irgula"
=ie sec(ena de directi(e#
beta 1O 4D3Nh .bc4ah 111.111.11b 74N3o
1O -N32? N32? VabV
%n memorie de la adresa WbetaX se (or genera octe ii#
3N 4D 4a bc bb .? ?e .D fd e1 .? e1 37 31
beta U7 U4 U3 U2 U1. U17 U14
Constanta octala 74N3o este generat de la adresa beta U3"
c) $ouble 9:R$(dublu cu(-nt)
Un dublu cu(-nt ocupa 7 cu(inte sau 4 octe i ( ?7 bi i ) si poate fi reprezentat in memorie pe 4
octe i consecuti(i !ntr-o pereche de registre de 13 bi i sau !ntr-un registru de ?7 bi i (la procesoarele de ?7
bi i)"
%nformaia memorata intr-un dublu cu(-nt poate fi#
un !ntreg pe ?7 bi i cu sau fr semn&
un numr real in simpl precizie&
sau o adres fizic de memorie de ?7 bi i"
:enerarea datelor de tip dublu cu(-nt se poate face folosind directi(a 11 ( Define Double "ord) a
crei sinta*a este#
5#ariabil6 $$ lita 7 e8preii
unde#
- (ariabil opional este un identificator asociat adresei efecti(e primului dublu cu(-nt de
memorie generat corespunztor primei e*presii din lista de e*presii&
- lista de e*presii este o lista de e*presii constante separate prin (irgula"
9eprezentarea celor doua cu(inte a unui dublu cu(-nt de memorie se face astfel !nc-t cu(-ntul cel
mai pu in semnificati( este memorat la adresa cea mai mica" 1e e*emplu dublul cu(-nt 17?4D3N2 h aflat
la adresa 7...h se memoreaz astfel# cu(-ntul D3N2h se memoreaz la adresa 7...h iar cu(-ntul 17?4h
la adresa 7..7h adic adresa de segment este memorata la adrese mari iar deplasamentul (offsetul) la
adrese mici"
Arhitectura Calculatoarelor 11
$ec(ena de directi(e #
gama 11 17?4D3N2h 1 -1
11 1". -1".
11 gama
presupun-nd c memorarea se face de la adresa 4D17#?43N (a conduce la generarea urmtoarei sec(ene
de octe i#
N2 D3 ?4 17 .1 .. .. .. ff ff ff ff .. .. 2. ?f
gama U4 U2 U17 U13
.. .. 2. bf 3N ?4 17 4D
gamaU13 U7.
Constanta reala -1". se asambleaz la adresa gama U 13"
d) <=A$ 7 9:R$ (8 octe i)
)ipul Tuad B word (Rword) ocupa 2 octe i i este reprezentat in memorie pe 34 bi i sau !ntr-o
pereche de registre de ?7 bi i (!n cazul procesoarelor de ?7 bi i)"
%nformaia stocata intr-un Rword poate fi# un !ntreg cu sau fr semn pe 34 bi i sau un numr real
in dubl precizie"
:enerarea unor date de tip Rword se face cu a'utorul directi(ei 1T (Define #uad $ %ord) a crei
sinta*a este#
5#ariabila6 $< lita de e8preii
unde#
- (ariabila opional este un identificator asociat adresei efecti(e primului Rword de memorie generat
corespunztor primei e*presii din lista de e*presii&
- lista de e*presii este o lista de e*presii constante separate prin (irgula"
9eprezentarea in memorie a celor 2 octe i ai unui Rword se face astfel !nc-t octetul cel mai pu in
semnificati( este memorat la adresa cea mai mica"
=ie sec(ena #
R 1T 7 -7 7"D -7"D
care (a fi reprezentat in memorie astfel#
.7 .. .. .. .. .. .. .. fe ff ff ff ff ff ff ff
R U2 U13
.. .. .. .. .. .. .4 4. .. .. .. .. .. .. .4 c.
U74
<aloarea reala -7"D este asamblat de la adresa RU74"
e) /en 4"te
<alorile )en B bAte (tbAte) ocup 1. octe i consecuti(i de memorie sau unul din registrele
coprocesorului matematic"
%nformaia stocata intr-un tbAte poate fi# un numr !ntreg reprezentat ca o sec(ena de cifre HC1
(format !mpachetat) cu semn sau un numr real in precizie e*tinsa"
:enerarea unor date de tip tbAte se face cu directi(a 1) ( Define &en !tes) a crei format este#
5#ariabila6 $/ lita de e8preii
unde#
- (ariabila opional este un identificator asociat adresei efecti(e primului tbAte de memorie generat
corespunztor primei e*presii din lista de e*presii&
- lista de e*presii este o lista de e*presii constante separate prin (irgula"
;n format HC1 !mpachetat fiecare cifra zecimal se reprezint pe o tetrad (4 bi i) deci 7 cifre
HC1 pe octet" Un !ntreg HC1 se poate reprezenta cu ma*im 1S cifre zecimale care ar ocupa N3 bi i"
Ultima tetrad aflat la adresa cea mai mare este destinat memorrii semnului" $emnul se memoreaz
doar in bitul cel mai semnificati( al numrului deci urmtorii ? bi i ai tetradei ce conine semnul pot fi
bi i ai numrului" Astfel !ntregii HC1 pot fi cuprini intre#
Arhitectura Calculatoarelor 17
-NSSSS SSSSS SSSSS SSSSS
i
UNSSSS SSSSS SSSSS SSSSS
cifra cea mai semnificati( fiind reprezentat doar pe ? bi i"
1irecti(a#
tb $/ 3>6?1223>6?8@01223>6A B3>6?1223>6?8@01223>6
(a conduce la generarea urmtoarei sec(ene de octe i#
D3 ?4 17 S. N2 D3 ?4 17 3N 4D D3 ?4 17 S. N2 D3 ?4 17 3N cD
tb U1.
2.> %etul de intruc!iuni 8086
;n cadrul acestui capitol sunt prezentate !n detaliu instruciunile de baz ale familiei de procesoare
%ntel" Acolo unde este cazul se specific tipurile interzise de adresare"
$etul de instruciuni este grupat !n 3 clase#
intruc!iuni de tranfer care deplaseaz date !ntre memorie sau porturi de intrareJieire i registrele
procesorului fr a e*ecuta nici un fel de prelucrare a datelor&
intruc!iuni aritmetice Ci logice care prelucreaz date !n format numeric&
intruc!iuni pentru Ciruri specifice operaiilor cu date alfanumerice&
intruc!iuni pentru controlul programului care !n esen se reduc la salturi l la apeluri de
proceduri&
intruc!iuni specifice Dntreruperilor hard Ci oft&
intruc!iuni pentru controlul proceorului"
Aceast !mprire este realizat dup criterii funcionale" 1e e*emplu instruciunile +U$@ i +8+
sunt considerate ca instruciuni de transfer dei ia prima (edere ar putea fi considerate instruciuni
specifice procedurilor" Acelai lucru despre instruciunile %, i 8U) care interfaeaz procesorul cu
lumea e*terioar# ele sunt considerate instruciuni de transfer dei ar putea fi considerate instruciuni de
intrareJieire" %ntrrile i ieirile sunt !ns cazuri particulare de transfer"
=iecare categorie de instruciuni este !nsoit de specificarea e*plicit a indicatorilor de condiie care
sunt modificai !n urma e*ecuiei"
2.>.1 Intruc!iuni pentru tranferuri de dateA intruc!iuni Dn aritmetica binara i Dn
aritmetica 4E$. No iuni teoretice
%nstruciunile de transfer permit copierea unui octet sau cu(-nt de la sursa la destinaie" 1estinaia
poate fi un registru locaie de memorie sau un port de ieire iar sursa poate fi un registru o locaie de
memorie constante sau port de intrare" Ca regula general destinaia i sursa nu pot fi ambele locaii de
memorie" ;n specificarea sursei i destinaiei se (or folosi notaiile#
segment# offset pentru adrese fizice&
(*) paranteze rotunde pentru a desemna Wconinutul lui *X"
8H$" %nstruciunea de transfer nu modifica indicatorii de condiie (flagurile) cu e*cepia instruciunilor
$A@= i +8+="
#nstruc$iuni de transfer
a) Intruc!iunea M:F (Mo#e $ata).
=orma general a instruciunii Eo( este#
mov dest' sursa ( (dest) (sursa)
realizeaz transferul informaiei de la adresa efecti(a data de sursa la dest.
>*emplu#
mo( a* alfa& transfera coninutul adresei alfa !n a*
mo( b* offset alfa& transfera adresa efecti(a alfa !n b*
mo( al NDh& transfera NDh !n al
mo( c* /1..0& transfera coninutul adresei 1.. !n c*
mo( /di0 b*& transfera coninutul lui b* la adresa coninuta !n di
mo( bAte ptr alfa /b*0& pune coninutul octetului de la adresa
&dat de b* la adresa alfa
Arhitectura Calculatoarelor 1?
b) Intruc!iunea +E0- ( .8change $ata )
%nterschimb sursa cu destinaia" =orma general#
)*+, dest' sursa
9estricii#
registrele de segment nu pot aprea ca operanzi&
cel puin un operand trebuie sa fie un registru general"
>*emple#
*chg al ah
*chg alfa a*
*chg sir /si0 b*
*chg cs# /b*0/si0 a*
%nterschimbarea coninutului a doi operanzi din memorie op1 i op7 se poate face prin sec(ena de
instruciuni#
mo( reg op1
*chg reg op7
mo( op7 reg
c) Intruc!iunea +,A/ (/ranlate)
=orma general#
G6A)
%nstruciunea nu are operanzi semnificaia fiind#
(al) ds# ((b*)U(al))
adic se transfera !n al coninutul octetului de la adresa efecti(a # -bx./-al..
%nstruciunea se folose te la con(ersia unor tipuri de date folosind tabele de con(ersie adresa
acestor tabele se introduce !n bx iar !n al se introduce poziia elementului din tabel" 1e e*emplu#
con(ersia unei (alori numerice cuprins intre . i 1D !n cifrele he*azecimale corespunztoare se poate
face prin#
tabel 1H V.17?4D3N2SabcdefVV
" " " " " " " " " "
lea b* tabel
mo( al11
*lat
;n al se (a depune cifra he*azecimala b"
d) Intruc!iunea IN (Input $ata)
>*ecut o citire de la portul de intrare specificat 2 sau 13 bii dup cum se specifica registrul al
sau a* sau alte registre generale pentru noile procesoare"
=orma general#
IN dest port
unde#
dest este registrul al sau a* (noile procesoare accept i alte registre !n locul lui al respecti( a*)&
port este o constant cuprins intre . i 7DD sau registrul d*"
e) Intruc!iunea :=/ (:utput $ata)
>*ecut o scriere la portul de iesire specificat de 2 sau 13 bii dup cum se specific registrul al
sau a*"
=orma general #
:=/ dest port
unde#
destinaie este registrul al sau a*&
port este o constant cuprins intre . i 7DD sau registrul d*"
f) Intruc!iunea ,.A (,oad .ffecti#e Addre)
Are ca efect !ncarcrea adresei efecti(e (offsetul) intr-un registru general"
Arhitectura Calculatoarelor 14
=orma general#
,.A reg sursa
unde#
sursa - este un operand aflat !n memorie specificat printr-un mod de adresare &
reg - este un registru general"
>*emplu#
lea b* alfa
lea si alfa /b*0/si0
Acelai efect se obine folosind operandul 8==$>) !n %nstruciunea E8<#
mo( b* offset alfa
mo( si offset alfa /b*0/si0
g) Intruc!iunea ,$%G ,.% (,oad $ata %egmentG ,oad .8tra %egment)
=orma general#
61$ reg sursa
unde#
reg -este un registru general de 13 biti&
sursa -este un operand de tip double B word aflat !n memorie care conine o adres complet de ?7
bii"
Are ca efect transferul unei adrese complete !n perechea de registre ds i reg specificat !n instruciune
adic#
(reg) ((sursa))
(ds) ((sursa) U 7)
>*emplu#
alfa db 7D
adrMalfa dd alfa
" " " " " " "" " "" " " "
lds si adr-alfa & !n registru si se transfer offset-ul
&iar !n ds adresa de segment a celulei alfa
mo( bAte ptr /si0 ND
" " " " "" " " "" " " " " " " "
i) Intruc!iunea ,A0H (,oad A0 Iith H,A-%)
%nstruciunea !ncarc !n registrul A@ octetul dat de partea cea mai puin semnificati(a a registrului
=6A:$ ce conine indicatorii" %nstruciunea nu are operanzi"
A@ =6A:$
.N

J) Intruc!iunea %A0H (%tore A0 into H,A-%)
%nstruciunea !ncarc !n registrul =6A:$ !n octetul cel mai puin semnificati( coninutul
registrului A@ adic#
=6A:$ (A@)
.N
%nstruciunea nu are operanzi"
%&'&% (ritmetica binara
Aceste instruc iuni modifica coninutul registrului =6A:$"
a) Intruc!iunea A$$ (Add)
=orma general#
A$$ dest sursa & (dest) (dest) U (sursa)
unde#
dest poate fi un registru general sau o locaie de memorie&
sursa poate fi un registru general o locaie de memorie sau o constant"
Cei doi operanzi nu pot fi simultan locaii de memorie"
8peraia se poate efectua pe octet sau pe cu(-nt" Cei doi operanzi trebuie sa aib aceeai dimensiune
(acelai tip)" ;n caz de ambiguitate se (a folosi operatorul +)9"
Arhitectura Calculatoarelor 1D
%ndicatorii afectai sunt# A= C= += $= K= i 8=
>*emple#
add a* D
add bl D
add a* b*
add word ptr /b*0 ND
add alfa a*
add alfa D
add bAte ptr /si0 ND
add bAte ptr alfa ND
b) Intruc!iunea A$E (Add Iith Earr")
=orma general#
A$E dest sursa & (dest) (dest) U (sursa) U (C=)
Unde dest i sursa au aceeasi semnificaie ca la instruciunea A11 iar C= este CarrA =lag"
%nstruciunea adun coninutul dest cu coninutul sursei i cu bitul de transport C=" %ndicatorii afectai sunt
aceeai de la instruciunea A11"
8peraia A1C se folose te la adunri de operanzi pe mai multe cu(inte operaie !n care poate
aprea transport de care trebuie sa se in seama"
0xemplu. $ se adune doua numere op1 op7 !n dubla precizie (pe 7 cu(inte)"
op1 dd 17?4D3N2h
op7 dd .abcdefgh
rez dd C
"""""""""""""""""""""""""""""""""""
mo( a* word ptr op1
add a* word ptr op7
mo( word ptr rez a*
mo( a* word ptr op1U7
adc a* word ptr op7U7& se considera e(entualul transport
mo( word ptr rezU7 a*
c) Intruc!iunea %=4 (%ubtrat)
=orma general#
%=4 dest sursa & (dest) (dest) B (sursa)
unde dest i sursa au aceeai semnificaie ca la instruciunea A11" %ndicatorii afectai sunt cei specificai
la A11"
d) Intruc!iunea %44 (%ubtrat Iith 4orroI)
=orma general#
%44 dest sursa & (det) (dest) B (sursa) B (C=)
unde semnifica ia dest sursa i C= sunt cele prezentate la A1C" %nstruciunea $HH ia !n considerare
e(entualul !mprumut" >*emplu#
8p1 dd 17?4D3N2h
8p7 dd .abcdefghS.h
9ez dd C
" " " " " " " " " " " " "
mo( a* word ptr op1
sub a* word ptr op7
mo( word ptr rez a*
mo( a* word ptr op1 U 7
sbb a* word ptr op7 U 7 & se considera e(entualul !mprumut
mo( word ptr rez U 7 a*
e) Intruc!iunea INE (Increment)
=orma general#
Arhitectura Calculatoarelor 13
INE dest & (dest) (dest) U 1
unde dest este un registru general un operand din memorie de tip octet sau cu(-nt" $emnifica ia fiind
operandul dest este incrementat cu unu" %ndicatorii afectai sunt A= += $= K= 8="
>*emple#
inc alfa
inc bl
inc word ptr /b*0 /si0
f) Intruc!iunea $.E (decrement)
=orma general#
$.E dest & (dest) (dest) B 1
unde dest are aceeai semnificaie ca dest de la %nstruciunea %,C" Aceeai indicatori ca la %,C sunt
afectai"
g) Intruc!iunea N.- (Negate)
=orma general#
N.- dest # (dest) . B (dest) schimbare de semn
unde dest este un operand pe 2 sau 13 bii ce poate fi un registru general sau o locaie de memorie"
%nstruciunea afecteaz indicatorii A= C= += $= 8= i K="
>*emplu#
alfa db ND
" " " " " " " " " " " "
mo( al alfa
neg al
mo( alfa al & la adresa alfa a(em - ND
sau
neg alfa
h) Intruc!iunea EMK (Eompare)
=orma general#
EMK dest sursa & (dest) B (sursa)
%nstruciunea realizeaz o operaie de scdere intre cei doi operanzi fr a modifica operandul
dest sau sursa cu poziionarea indicatorilor de condiie" %ndicatorii afectai sunt# A= C= += $= K= i 8="
Aceasta instruciune se folose te !mpreuna cu instruciunea de salt condiionat"
>*emple#
cmp a* alfa/b*0/si0
cmp /si0 .
i) Intruc!iunea E49 (Eon#ert 4"te to 9ord)
Are ca efect e*tinderea bitului de semn (A6
N
) din A6 la !ntreg registru A@ adic#
daca bitul de semn A6
N
F . atunci (ah) ..h
altfel (ah) .ffh"
%nstruciunea nu are operanzi i nu afecteaz indicatorii de condiie"
0xemplu. $e cere s se adune un numr !ntreg cu semn reprezentat pe octet cu un numr !ntreg cu semn
pe cu(-nt"
a db -ND
b dw -122
c dw C
" " " " " " " " "
mo( al a
cbw & con(ertete octetul la cu(-nt
add a* b
mo( c a*
" " " " " " " " " "
Arhitectura Calculatoarelor 1N
J) Intruc!iunea E9$ (Eon#ert 9ord to $ouble 9ord)
Are ca efect e*tinderea bitului de semn din AG (AG
1D
) la !ntreg registrul 1G obin-ndu-se astfel AG pe
?7 de bii adic#
daca (AG
1D
) F . atunci (d*) ....h
altfel (d*) .ffffh"
%nstruciunea nu are operanzi i nu afecteaz indicatorii de condiie"
0xemplu. $e cere diferena dintre un operand reprezentat pe 7 cu(inte (18) i unul reprezentat pe cu(-nt
($8)
do dd 17?4D3N2h
so dw .abcdh
rez dd C
" " " " " " " " " " " " " " " "
mo( a* so
cwd a* & operandul so reprezentat !n 1G # AG
mo( b* a* & sal(eaz a* !n b*
mo( a* word ptr do
sub a* b*
mo( word ptr rez a*
mo( a* word ptr do U 7
sbb a* d* & ia !n considerare e(entualul transport
mo( word ptr rez U 7
&) Intruc!iunea M=, (Multipl")
=orma general#
M=, sursa
unde sursa poate fi un registru sau o locaie de memorie de 2 sau 13 bii" 9ezultatul se obine pe un numr
dublu de bii (13 sau ?7)" 8peraia realizat este produsul intre acumulator i sursa cu depunerea
rezultatului !n acumulatorul e*tins (a* pe octet sau d*#a* pe cu(-nt)" Cei doi operanzi se consider
numere fr semn"
1ac sursa este pe octet a(em#
(AG) (A6) Y (sursa)
iar dac sursa este pe cu(-nt a(em#
(1G # AG) (AG )Y (sursa)
Afecteaz indicatorii C= i 8= ceilali sunt nedefinii" >*emplu"
a db 1.h
b dw 1..h
c dw C
d dd C
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
mo( al 7.h
mul a & (a*)(al)Ya
mo( c a*& depune rezultatul pe cu(-nt
mo( a* 1.h
mul b & (d*#a*) (a*)Yb
mo( word ptr d a*& depune rezultatul pe dublu cu(-nt
mo( word ptr dU7 d*
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
l) Intruc!iunea IM=, (Integer Multipl")
=orma general#
IM=, sursa
Arhitectura Calculatoarelor 12
%nstruciunea este similara cu EU6 deosebirea const-nd !n faptul ca cei doi operanzi se consider
numere cu semn" Afecteaz indicatorii C= i 8= restul sunt nedefinii"
0xemplu1
alfa db B S?
beta dw 14?
rez dd C
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
mo( al alfa
cbw & e*tensia de semn !n ah
imul beta (d*#a*) (a*)Y(beta)
mo( word ptr rez a*
mo( word ptr rezU7 d*
m) Intructiunea $IF ($i#ide)
=orma general#
$IF sursa
unde sursa este un registru sau o locaie de memorie reprezentata pe octet sau cu(-nt"
%nstruciunea realizeaz !mpr irea fr semn intre de!mprit i !mpritor" 1aca !mpritorul (sursa) este
reprezentat pe octet atunci de!mpritul este AG i rezultatul este# c-tul !n al iar restul !n ah adic#
$IF sursa & (al) (a*)J(sursa)
& (ah) restul !mpririi (a*)J(sursa)
1aca !mpritorul (sursa) este reprezentat pe cu(-nt atunci de!mpritul este considerat !n 1G i
AG c-tul se obine !n AG iar restul !n 1G adic
$IF sursa & (a*) c-tul !mpririi (d*#a*)J(sursa)
& (d*) restul !mpririi (d*#a*)J(sursa)
)oi indicatorii nu sunt definii" 8peraia de !mprire poate conduce la depsiri dac c-tul dep e te
(aloarea ma*im reprezentabil pe 2 respecti( pe 13 bii sau daca !mpritorul este ."
n) Intruc!iunea I$IF (Integer $i#ide)
=orma general#
I$IF sursa
$emnifica ia instruc iunii i a operandului sursa este aceeasi ca la %nstruciunea 1%< cu diferena c
operanzii sunt considerai numere cu semn deci !mprirea se face cu semn" %ndicatorii sunt nedefinii"
8peraia poate conduce la depsiri"
%&'&) (ritmetica BCD
a) Intruc!iunea AAA (A%EII AdJut for Addition)
%nstruciunea nu are operanzi i e*ecuta corecia acumulatorului AG dup operaii de adunare cu numere
!n format HC1 despachetai" $emnifica ia este#
daca (A6
.#?
) Z S sau (A=) F 1 atunci [
(A6) (A6) U 3
(A@) (A@)U1
(A=) 1
(C=) 1
(A6) (A6) A,1 .=@
\
%ndicatorii afectai # A= C= restul nedefinii"
>*emplu#
mo( a* 4.2h
mo( d* 7.Sh
add a* d* & (a*)F.311h
Arhitectura Calculatoarelor 1S
AAA & (a*)F.N.Nh
b) Intruc!iunea AA%(A%EII AdJut for %ubtraction)
%nstruciunea nu are operanzi i e*ecut corecia acumulatorului AG dup operaii de scdere cu numere
!n format HC1 despachetai" $emnifica ia este#
daca (A6
.#?
) Z S sau (A=) F 1 atunci [
(A6) (A6) - 3
(A@) (A@) - 1
(A=) 1
(C=) 1
(A6) (A6) A,1 .=@
\
%ndicatorii afectai # A= C= restul nedefinii"
>*emplu#
mo( a* 4.2h
mo( d* 7.Sh
sub a* d* & (a*)F.1ffh
AA$ & (a*)F.1.Sh
c) Intruc!iunea $A% ($ecimal AdJut for %ubtraction)
%nstruciunea nu are operanzi i e*ecuta corecia zecimala a acumulatorului A6 dup operaii de
scdere cu numere !n format HC1 !mpachetat" $emnifica ia este#
daca (A6
.#?
) Z S sau (A=) F 1 atunci [
(A6) (A6) - 3
(A=) 1
\
daca acum (A6
4#N
) Z S sau C= F 1 atunci [
(A6) (A6) - 3.@
(C=) 1
\
%ndicatorii afectai # A= C= += $= K=" %ndicatorul 8= este nedefinit"
1e e*emplu !n urma sec(enei#
E8< A6 D7@
$UH A6 74@ & A6 F 7>@
1A$ & A6 F 72@
se obine !n A6 rezultatul corect 72@"
d) Intruc!iunea AAM (A%EII AdJunct for Multipl")
%nstruciunea nu are operanzi i efectueaz o corecie a acumulatorului AG dup o !nmulire pe 2
bii cu operanzi !n format HC1 despachetai"
$emnifica ia este urmtoarea#
(A@) (A6) J 1.
(A6) (A6) E81 1.
%ndicatori afectai# += $= K= restul nedefinite"
1e e*emplu
mo( al N
mo( bl S
mul bl & ..?fh
AAE & .3.?h
e) Intruc!iunea AA$ (A%EII AdJunct for $i#iion)
%nstruciunea nu are operanzi i efectueaz o corecie a acumulatorului AG !naintea unei !mpriri
a doi operanzi !n format HC1 despachetai"
$emnifica ia este urmtoarea#
Arhitectura Calculatoarelor 7.
(A6) (A@) Y 1. U (A6)
(A@) .
%ndicatori afectai# += $= K= restul nedefinite"
1e e*emplu
mo( a* ?.Dh
mo( bl 7
AA1 & (a*)F7?h
di( bl & (al)F11h (ah)F1
%&'&* +,emple programe
>*emplul 1" Acest e*emplu prezint c-te(a tehnici de adresare specifice procesoarelor din familia
2.23J22#
)%)6> e*emplulM1
"E81>6 $EA66
"$)ACL 1.h
"1A)A
alfa 1O ? 1U+(C)
"C81>
begin# mo( a*P1A)A
mo( dsa*
mo( a*1N & Adresare imediata a operandului
& sursa care este o constant
& zecimala
mo( a*1...1b & $ursa este o constant binara
mo( a*11h & $ursa este o constant he*a
mo( alfaa* & Adresare directa a operandului
& destinaie
mo( c*a* & %nterschimb coninuturile
mo( a*b* & registrelor ax i bx
mo( b*c*
*chg a*b* & Acelasi efect cu sec(ena
& anterioara
mo( si7
mo( alfa/si0a* & Adresare relati(a cu registrul
& i a operandului destinaie
mo( si7
mo( b*8==$>) alfa& Adresare imediat a operandului
& surs (adresa (ariabilei alfa)
& datorit operatorului 8==$>)
lea b*alfa & Aceasta instruciune are acelasi
& efect cu cea anterioar cu toate
& c sursa este adresat direct
mo( c*/b*0/si0 & Adresare bazat inde*at a sursei
mo( c*alfaU7 & Aceast instruciune are acelasi
& efect cu cea anterioar sursa
& fiind !ns adresat direct
mo( c*alfa/70 & ,otaii echi(alente pentru
mo( c*/alfaU70 & %nstruciunea anterioar
mo( di4
mo( /b*0/di0DDh & $e (a semnala eroare deoarece nu
& s-a precizat tipul destinaiei
& care este o (ariabila anonima
mo( H])> +)9 /b*0/di0DDh& $e (a folosi aceast
Arhitectura Calculatoarelor 71
& (ariant c-nd se dorete o
& adresare la ni(el de octet
mo( H])> +)9 alfaU4DDh& Aceast instruciune are
& acelasi efect cu cea anterioar
& destinaia fiind !ns adresat
& direct" 1esi alfa este definit cu
& 1O operaia este realizata la
& ni(el de octet
mo( si7
mo( b*?
mo( alfa/b*0/si0??h& Adresare bazata inde*ata
& relati(a a operandului destinaie
mo( alfa/b*Usi0??h& ,otaii echi(alente pentru
mo( /alphaUb*Usi0??h& %nstruciunea anterioara
mo( /b*0/si0"alfa??h
mo( /b*0/si0Ualfa??h
>,1 begin
+entru e*emplificri s-a folosit %nstruciunea mov !n diferite (ariante de adresare# registru la registru
din memorie !n registru i din registru !n memorie"
>*emplul 7" $e consider un (ector de trei componente fiecare component a(-nd dimensiunea de
un cu(-nt" $a se permute circular elementele (ectorului cu o poziie la st-nga#
)%)6> e*emplulM7
"E81>6 $EA66
"$)ACL 1.h
"1A)A
(ect 1O 1..h7..h?..h
"C81>
start# mo( a*P1A)A& %niializarea registrului
mo( dsa* & de segment ds
mo( d*(ect & $al(are !n dx a primei
& componente a (ectorului
mo( a*(ectU7& )ransfer a doua
mo( (ecta* & component !n prima
mo( a*(ectU4& )ransfer a treia
mo( (ectU7a*& component !n a doua
mo( (ectU4d*& )ransfer prima
& component !n ultima
>,1 start
>*emplul ?" $a se !ncarce intr-o (ariabila pointer (aloarea propriei adrese sub forma de offset i
segment"
)%)6> e*emplulM?
"E81>6 $EA66
"$)ACL 1.h
"1A)A
(arMptr 11 C
& 1irecti(a 11 are ca efect generarea sau
& rezer(area unor entiti pe ?7 de bii
"C81>
begin# mo( a*P1A)A
mo( dsa*
mo( a*8==$>) (arMptr
mo( O891 +)9 (arMptra*
& 8peratorul 8==$>) selecteaz componenta de
& offset a adresei unei (ariabile
Arhitectura Calculatoarelor 77
mo( a*$>: (arMptr
mo( O891 +)9 (arMptrU7 a*
& 8peratorul $>: selecteaz componenta de
& segment a adresei unei (ariabile
>,1 begin
>*emplul 4" $a se efectueze operatia# dp2 34 4 dp54 sp5/sp2 stiind ca sp5 si sp2 sint intregi cu semn
reprezentati in simpla precizie pe un cu(int si dp2 este un intreg cu semn in dubla precizie pe doua
cu(inte"
)%)6> e*emplulMN
"E81>6 $EA66
"$)ACL 1.h
"1A)A
dp1 11 17?4D3N2h
sp1 1O 1N.h
sp7 1O 12.h
dp7 11 C
"C81>
begin# mo( a*P1A)A
mo( dsa*
mo( siO891 +)9 dp1 & +erechea (si#di)
mo( diO891 +)9 dp1U7& este folosit ca
& acumulator pe ?7 de bii deoarece (a*#d*)
& se folose te pentru con(ersii din simpla in
& dubla precizie
mo( a*sp1
cwd & $e con(ertete coninutul registrului
& ax considerat ca un numr !ntreg fr
& semn poriunea cea mai
& semnificati(a depun-ndu-se !n registrul dx
sub sia*
sbb did*
mo( a*sp7
cwd
add sia*
adc did*
mo( O891 +)9 dp7si
mo( O891 +)9 dp7U7di
>,1 begin
>*emplu6 D" $a se elaboreze un program pentru implementarea operaiei#
z 344 --%4x.6578!.
2
unde x ! z % sunt !ntregi cu semn reprezentai pe c-te un cu(-nt"
)%)6> e*emplulMS
"E81>6 $EA66
"$)ACL 1.h
"1A)A
w 1O 7..
* 1O 1..
A 1O -1
z 1O C
"C81>
begin# mo( a*P1A)A
mo( dsa*
mo( a*w & $e folose te ax ca
& acumulator
Arhitectura Calculatoarelor 7?
sub a**
mo( bl1.
idi( bl & !mpr ire !ntreag
cbw
imul A
imul a*
mo( za*
>,1 begin
>*emplul 3" $a se genereze 2 numere a c-te 9 cifre zecimale reprezentate !n format HC1 !mpachetat
(adic fiecare grup de doua cifre zecimale este memorat intr-un octet) i s se scrie o sec(ena de program
pentru calculul sumei i diferenei lor"
)%)6> e*emplulM11
"E81>6 $EA66
"$)ACL 1.h
"1A)A
bcd1 1H ?4h12h& 12?4 !n format HC1
& !mpachetat
bcd7 1H 2Sh7Nh& 7N2S !n format HC1
& !mpachetat
sum 1H 7 1U+(C)
dif 1H 7 1U+(C)
begin# mo( a*P1A)A
mo( dsa*
mo( albcd1
add albcd7
daa
mo( sumal
mo( albcd1U1
adc albcd7U1
daa
mo( sumU1al
mo( albcd1
sub albcd7
das
mo( difal
mo( albcd1U1
sbb albcd7U1
das
mo( sumU1al
>,1 begin
>*emplul N" $ se scrie un program pentru !nmulirea unui numr !ntreg poziti( de doua cifre
zecimale reprezentat !n format HC1 ne!mpachetat cu o cifra zecimala#
)%)6> e*emplulM1D
"E81>6 $EA66
"$)ACL 1.h
"1A)A
dgt 1H .Sh & S !n format HC1
& ne!mpachetat
num 1H .?h.7h& 7? !n format HC1
& ne!mpachetat
rez 1H ? 1U+(C)
"C81>
begin# mo( a*P1A)A
mo( dsa*
Arhitectura Calculatoarelor 74
mo( dldgt
mo( alnum
mul dl & a* - ..1bh
aam & a*- .7.Nh
mo( dhah
mo( rezal
mo( alnumU1
mul dl & a* B ..17h
aam & a* B .1.2h
add aldh & a*- .1.Ah
aaa & a* B .7..h
mo( rezU1al
mo( rezU7ah & .N...7
>,1 begin
>*emplul 2" $ se scrie un program de con(ersie a unui numr zecimal de doua cifre sub forma a
doua caractere zecimale i sa se afieze cele doua caractere pe ecran" +entru afiare se (a utiliza funcia
18$ cu codul 72h !n registrul dl afl-ndu-se codul A$C%% al caracterului care se (rea afiat" 6a apelul
unei funcii 18$ !n registrul al se (a transmite codul funciei"
)%)6> e*emplulM13
"E81>6 $EA66
"$)ACL 1.h
"1A)A
oct 1H 7D
"C81>
start# mo( a*P1A)A
mo( dsa*
mo( aloct
aam & a* B .7.Dh
add ahV.V
add alV.V
mo( d*a*
*chg dldh
mo( ah7 & =uncia 18$ cu codul .7h
int 71h & se utilizeaz pentru
mo( dldh& afiarea unui caracter pe
int 71h & ecran !n dl
& transmi-ndu-se codul A$C%% al
& caracterului de afiat
mo( a*4C..h& %esire normala la
int 71h & sistemul de operare
>,1 start
>*emplul S" Con(ersia unui !ntreg fr semn reprezentat pe 13 bii la un sir de caractere (cifre) !n
baza 1." Algoritmul de con(ersie daca n este numrul i sir este (ariabila unde se depun cifrele
numrului descris !n C este#
adresa F sir&
do[
rest F n^1.&
n F nJ1.&
YsirUU F rest U _.`&
\while (naF.)&
Ysir F .&
in(erseaza (adrsir)&
9estul furnizeaz cifra curenta creia i se aduga codul A$C%% al cifrei ." =uncia in(erseaz ordinea
caracterelor din irul generat de algoritm"
Arhitectura Calculatoarelor 7D
%mplementarea !n asamblare arata astfel#
data segment
n dw N3D4h
sir db D dup (bCb)VcV
data ends
cod segment
assume ds# data cs#cod
start# mo( a*data
mo( dsa*
mo( a*n
con(ert#
mo( c*.
mo( b*1.
di(ide#
mo( d*.
di( b* & c-tul !n AG restul !n 1G (16)
add d*V.V
push d*
inc c*
cmp a*.
'nz di(ide
re(erse#
pop a*
mo( sir/di0al
add di1
dec c*
cmp c*.
'nz re(erse
mo( d* offset sir
mo( ahS
int 71h& ?.7S7
mo( a* 4c..h
int 71h
cod ends
end start
%&'&' #nstruc$iuni de salt i ciclare
a)#nstruc$iunea de salt necondi$ionat -./
=orma generala #
-./ operand
unde operand este adresa de salt necondiionat" >*ista urmtoarele tipuri de instruciuni dE+#
de tip $@89) - c-nd operandul specifica o adresa in domeniul -172e U17N fa de (%+) actualizat
de tip ,>A9 - operandul specifica o adresa din acelai segment de cod&
de tip =A9 - operandul specifica o adresa din alt segment de cod"
b)#nstruc$iuni de salt condi$ionat
Aceste instruciuni implementeaz salturile condiionate de indicatorii de condiie"
=orma generala#
-cond operand
unde#
- cond este condiia de salt i este reprezentat de una sau doua litere ((ezi tabelul de mai 'os)&
- operand este un offset cuprins intre -172 si 172"
1ac condiia este !ndeplinit are loc saltul la adresa dat de operand dac nu - se continu !n
sec(en"
Arhitectura Calculatoarelor 73
$e obser(a ca e*ista 7 categorii de instruciuni pentru _mai mic` si _mai mare` cele care conin
cu(intele _abo(e` sau _bellow` si cele care conin cu(intele _less` sau _greater`" +rimele se folosesc in
situaia comparrii a doua (alori fr semn iar ultimele in situaia comparrii a doua (alori cu semn"
=ie sec(enele de program#
mo( a*.===>h
mo( b* 7
cmp a* b*
'a alfa
i
mo( a* .===>h
mo( b* 7
cmp a* b*
'g alfa
!n care se compar pe cu(-nt .===>h si 7"
$e obser(a ca (AG) Z (HG) daca cele doua (alori se considera reprezentate fr semn si ca (AG) f (HG)
daca cele doua (alori se considera cu semn" (-7 este mai mic decat 7)" Ca atare in primul caz saltul la
eticheta alfa are loc pe cand in cel de-al doilea caz nu are loc"
=iecare mnemonic din tabel se refer la iniialele cu(intelor urmtoare ce indic condiia !n
limba englez# Abo(e (peste mai mare) Helow (sub mai mic) >Rual (egal) ,ot (nu) :reater (mai
mare) 6ess (mai mic) CarrA (transport) Kero 8(erflow (depire de capacitate) +aritA (+>(en - paritate
par +8dd - paritate impar) $ign (semn)"
%nstruciune
(mnemonica)
Condiie de salt %nterpretare
d> dK K= F 1 Kero >Rual
d6 d,:>
$= 8=
6ess ,ot :reater or >Rual
d6>d,: $= 8= sau K= F 1 6ess or >Rual ,ot :reater
dH d,A> dC C= F 1 Helow ,ot Abo(e or >Rual CarrA
dH> d,A C= F 1 sau K= F 1 Helow or >Rual ,ot Abo(e
d+ d+> += F 1 +aritA +aritA >(en
d8 8= F 1 8(erflow
d$ $= F 1 $ign
d,> d,K K= F . ,ot Kero ,ot >Rual
d,6 d:> $= F 8= ,ot 6ess :reater or >Rual
d,6> d: $= F 8= si K= F . ,ot 6ess or >Rual :reater
d,H dA> d,C C= F . ,ot Helow Abo(e or >Rual ,ot CarrA
d,H> dA C= F . si K= F . ,ot Helow or >Rual Abo(e
d,+ d+8 += F . ,ot +aritA +aritA 8dd
d,8 8= F . ,ot 8(erflow
d,$ $= F . ,ot $ign
(0xemplu de citire1 :;0 < jump if not belo% or e=ual' salt -:. dac nu -;. e mai mic -. sau egal -0.)"
c) Intructiunea LE+M (L=MK if E+ i Mero)
%nstructiunea realizeaza salt la etcheta specificata daca continutul registrului CG este zero" =orma
generala#
-C01 etic2eta
unde eticheta este o eticheta aflata in domeniul -172 si 17N fata de (%+)
d) Intructiunea ,::K
=orma generala#
3OO/ etic2eta
Are ca efect#
c* c* -1
daca c* F . atunci
Arhitectura Calculatoarelor 7N
(%+) (%+) U 12
adica se decrementeaza CG si daca acesta este diferit de zero se sare la eticheta specificata in caz contrar
se continua cu instructiunea urmatoare" 12 este un deplasament pe 2 biti si reprezinta diferenta intre
offset-ul instructiunii urmatoare instructiunii 688+ si offset-ul etichetei"
>*# $uma celor n octeti de la adresa sir"
"data
sir db N S 1D 7D -12 ?? 11
n eRu (c - sir)JtApe sir
suma db C
"code
begin#
mo( a* Pdata
mo( ds a*
*or al al
mo( c* n
*or si si
repeta#
add al sir/si0
inc si
688+ repeta
mo( suma al
mo( a* 4c..h
int 71h
end begin
e) Intructiunea ,::KMG,::K. (,::K 9hile MeroG.Nual)
=orma generala1
3OO/1 etic2eta
sau
3OO/+ etic2eta
$emnificatia#
c* c* - 1
daca c* F . si K= F 1 atunci
(%+) (%+) U 12
$e decrementeaza c* si daca acesta este diferit de zero si indicatorul K= este 1 (rezultatul ultimei operatii
aritmetice a fost zero) se sare la eticheta specificata"
f) Intructiunea ,::KNMG,::KN. (,oop 9hile Not MeroGNot .Nual)
=orma generala#
3OO/41 etic2eta
sau
3OO/4+ etic2eta
$emnificatia#
c* c* - 1
daca c* . si K= F . atunci
(%+) (%+) U 12
>fectul este ca se cicleaza cat timp rezultatul ultimei operatii aritmetice este diferit de zero dar nu de mai
multe ori cat este continutul initial a lui c*"
%&'&5 #nstruc$iuni de deplasare (6738 6(38 6798 6(9) si de rotatie (9O38 9C38 9O98 9C9)&
Acest grup de instructiuni realizeaza operatii de deplasare si de rotatie la ni(el de bit"
%nstructiunile au doi operanzi# primul este operandul propriu-zis iar al doilea este numarul de biti cu care
se deplaseaza sau se roteste primul operand" Ambele operatii se pot face la dreapta sau la stinga"
1eplasarea inseamna translatarea tuturor bitilor din operand la stingaJdreapta cu completarea unei (alori
fi*e in dreaptaJstinga si cu pierderea bitilor din stingaJdreapta" 1eplasarea cu un bit la stinga este
Arhitectura Calculatoarelor 72
echi(alenta cu inmultirea operandului cu 7 iar deplasarea la dreapta cu impartirea operandului la 7"
9otatie inseamna translatarea tuturor bitilor din operand la stingaJdreapta cu completarea in
dreaptaJstinga cu bitii care se pierd in partea opusa"
Ambele operatii se fac cu modificarea bistabilului C= care poate chiar participa la operatiile de
rotatie"
=orma generala a instructiunilor este#
O/+9(T#+ operand8 contor
in care operand este un registru sau o locatie de memorie de 2 sau 13 biti iar contor (numarul de biti) este
fie constanta 1 fie registrul C6 care contine numarul de biti cu care se deplaseazaJroteste operandul"
+rocesoarele mai a(ansate (2.723 si peste) accepta un numar oarecare de biti specificat si printr-o
constanta intreaga"
6a operatiile de deplasare se modifica toate flagurile conform rezultatului in afara de A= care
este nedefinit" 6a operatiile de rotatie se modifica numai C= si 8="
6a instructiunile de deplasare se considera deplasari logice si aritmetice care se pot utiliza
dupa natura operanzilor"
a) Intructiunea %0,G%A, (%hift ,ogicGArithmetic ,eft)
Are forma generala#
673:6(3 operand8 contor
1esi e*ista doua mnemonice ($@6 si $A6) in fapt este (orba de o unica instructiune" Hitul cel
mai semnificati( al operandului trece in C= dupa care toti bitii se deplaseaza la stanga cu o pozitie"
8peratia se repeta de atitea ori de cat este (aloarea lui contor (1 sau continutul registrului C6)"
b) Intructiunea %0R (%hift ,ogic Right)
Are forma generala#
679 operand8 contor
Hitul cel mai putin semnificati( din operand trece in C= dupa care se deplaseaza toti bitii cu o
pozitie la dreapta (impartire la 7)" =aptul ca operatia de impartire se e*ecuta fara semn inseamna ca se
completeaza cu un bit . dinspre stinga" 8peratia se repeta de atitea ori cit este (aloarea lui contor (1 sau
continutul registrului C6)"
c) Intructiunea %AR (%hift Arithmetic Right)
Are forma generala#
6(9 operand8 contor
Hitul de semn ramine nemodificat" Hitul cel mai putin semnificati( din operand trece in C= dupa
care se deplaseaza toti bitii cu o pozitie la dreapta " =aptul ca operatia de deplasare se e*ecuta cu semn
inseamna ca se completeaza toti bitii eliberati cu bitul de semn" 8peratia se repeta de atitea ori cit este
(aloarea lui contor (1 sau continutul registrului C6)"
d) Intructiunea R:, (Rotate ,eft)
Are forma generala#
9O3 operand8 contor
Hitul cel mai semnificati( din operand trece atit in C= cat si in bitul cel mai putin semnificati( din
operand dupa ce toti bitii acestuia s-au deplasat la stanga cu o pozitie" 8peratia se repeta de atitea ori cit
este (aloarea lui contor (1 sau continutul registrului C6)"
Arhitectura Calculatoarelor 7S
e) Intructiunea R:R (Rotate Right)
Are forma generala#
9O9 operand8 contor
Hitul cel mai putin semnificati( din operand trece atit in C= cat si in bitul cel mai semnificati( din
operand dupa ce toti bitii acestuia s-au deplasat la dreapta cu o pozitie" 8peratia se repeta de atitea ori cit
este (aloarea lui contor (1 sau continutul registrului C6)"
f) Intructiunea RE, (Rotate ,eft through Earr")
Are forma generala#
9C3 operand8 contor
Hitul cel mai semnificati( din operand trece in C= se deplaseaza toti bitii din operand cu o
pozitie la stinga iar C= initial trece in bitul cel mai putin semnificati( din operand" 8peratia se repeta de
atitea oricit este (aloarea lui contor (1 sau continutul registrului C6)"
f) Intructiunea RER (Rotate ight through Earr")
Are forma generala#
9C9 operand8 contor
Hitul cel mai putin semnificati( din operand trece in C= se deplaseaza toti bitii din operand cu o
pozitie la dreapta iar C= initial trece in bitul cel mai semnificati( din operand" 8peratia se repeta de atitea
ori cit este (aloarea lui contor (1 sau continutul registrului C6)"
%&'&; #nstuctiuni logice
%nstuctiunile logice realizeaza functiile logice de baza pe octet sau pe cu(ant" 8peratiile se fac la
ni(el de bit"
a) Intuctiunea N:/ (Not)
=orma generala #
4OT dest
in care dest poate fi un registru sau o locatie de memorie" %nstructiunea pro(oaca negarea tuturor bitilor
operandului adica se face complementul fata de unu"
b) Intuctiunea AN$ (And)
=orma generala #
(4D dest8 sursa
in care dest poate fi un registru sau o locatie de memorie iar sursa un registru sau o locatie de memorie
sau o constanta" %nstructiunea depune in dest si-logic la ni(el de bit intre dest si sursa"
%ndicatori afectati# $= K= += C=F. 8=F. A= nedefinit"
c) Intuctiunea :R (:r)
=orma generala #
O9 dest8 sursa
in care dest poate fi un registru sau o locatie de memorie iar sursa un registru sau o locatie de memorie
sau o constanta" %nstructiunea depune in dest sau-logic la ni(el de bit intre dest si sursa"
%ndicatori afectati# $= K= += C=F. 8=F. A= nedefinit"
d) Intuctiunea +:R (.8clui#e :r)
Arhitectura Calculatoarelor ?.
=orma generala #
0O9 dest8sursa
in care dest poate fi un registru sau o locatie de memorie iar sursa un registru sau o locatie de memorie
sau o constanta" %nstructiunea depune in dest *or-logic la ni(el de bit intre dest si sursa"
%ndicatori afectati# $= K= += C=F. 8=F. A= nedefinit"
e) Intuctiunea /.%/ (/et)
=orma generala #
/.%/ detAura
in care dest poate fi un registru sau o locatie de memorie iar sursa un registru sau o locatie de memorie
sau o constanta" %nstructiunea realizeaza and-logic la ni(el de bit intre dest si sursa cu pozitionarea
indicatorilor"
%ndicatori afectati# $= K= += C=F. 8=F. A= nedefinit"
+,emple programe
[Cautare sec(entiala\ $a se scrie un program pentru cautarea primului blanc din sirul incepind de la
adresa ir" 6a iesirea din program a8 (a contine (aloarea . daca sirul nu contine blancuri altfel (a contine
(aloarea pozitiei din sir a primului blanc gasit" $e presupune ca sirul ir are l caractere"
)%)6> e*emplulM1
"E81>6 $EA66
"$)ACL 1.h
"1A)A
sir 1H VAcesta este un siraV
l >TU c-sir
"C81>
begin# mo( a*P1A)A
mo( dsa*
mo( c*l
mo( si-1
mo( alV V
urm# inc si
cmp alsir/si0
loopne urm
'ne nuMgasit
mo( a*l
sub a*c*
'mp iesire
nuMgasit# mo( a*.
iesire# nop
>,1 begin
%&'&< #nstruc$iuni pentru controlul procesorului
$unt instruciuni care controleaz anumite funcii ale procesorului ce acioneaz fie prin
intermediul unor indicatori de control (sau registre de control) fie prin introducerea unor stri sau
semnale necesare pentru sincronizarea cu e(enimentele e*terne"
>*emple#
CEC &complementarea (alorii indicatorului C=
C6C &poziionarea pe . a indicatorului C=
$)C &poziionarea pe . a indicatorului C=
,8+ &,ici o operaie dar consum ? perioade de ceas"
C61 &poziionarea pe . a indicatorului 1=
$)1 &poziionarea pe 1 a indicatorului 1=
C6% &poziionarea pe . a indicatorului %= dezacti(are !ntreruperi mascabile
$)% &poziionarea pe 1 a indicatorului %=
@6) &8prire microprocesor p-n la 9>$>) ,E% sau %,) (dac sunt acti(ate)
OA%) &ateptare p-n c-nd (ine semnalul e*terior testF.
Arhitectura Calculatoarelor ?1
>$C &operaie destinat coprocesorului
68CL &prefi* care acti(eaz semnalul e*tern JlocI astfel c microprocesorul anun
&c nu (a rspunde la o cerere de cedare a controlului magistralelor"
%&'&= #nstruc$iuni pentru lucrul cu >iruri
;n afar de tipurile de baz amintite mai sus e*ist i posibilitatea efecturii unor operaii de
transfer sau operaii aritmetice i logice cu iruri de date (cu informaii aflate !n zone continue de
memorie)" 8peraiile pe iruri pot fi efectuate indi(idual pentru fiecare cu(-nt din ir sau automat - cu
repetare numrul de repetri al instruciunii fiind dictat de coninutul unui registru contor"
8peraiile tipic efectuate sunt#
transferul unui ir din zon sursa !n zon destinaie
comparare !ntre dou iruri
cutarea unei (alori !ntr-un ir
!ncrcarea acumulatorului cu elementele unui ir"
citirea unui ir de la un port de intrare
scrierea unui ir la un port de ieire
>*emple #
E8<$H(O) &transfer pe 2 (13) bii /1$#$%0g/>$#1%0
&$%h$%U1& 1%h1%U1 (decrementare pentru 1=F1)
CE+$H(O) &comparare pe 2(13) bii /1$#$%0 cu />$#1%0
&$%h$%U1& 1%h1%U1 (decrementare pentru 1=F1)
$CA$H(O) &comparare pe 2(13) bii intre A6(AG) i />$#1%0
&1%h1%U1 (decrementare pentru 1=F1)
681$H(O) &se !ncarc A6(AG) de la /1$#$%0
&$%h$%U1 (decrementare pentru 1=F1)
$)8$H(O) &se stocheaz A6(AG) la />$#1%0
&1%h1%U1 (decrementare pentru 1=F1)
9>+ &prefi* de repetare" Contorul este CG"
1A)A $>:E>,)
sir1 1H 1.. 1U+(N)
sir7 1H 1.. 1U+(C)
1A)A >,1$
C81> $>:E>,)
A$$UE> cs#C81>ds#1A)Aes#1A)A
start# mo( a*1A)A
mo( dsa*
mo( esa*
mo( si8==$>) sir1
mo( di8==$>) sir7
mo( c*6>,:)@ sir1
cld
muta# mo(s sir1sir7
loop muta
C81> >,1$
>,1 start
Utilizind prefi*ul rep bucla#
muta# mo(s sir1sir7
loop muta
din e*emplu se poate rescrie astfel#
rep mo(s sir1sir7
%&'&!" +c2ivalari
>chi(alarile reprezinta niste (alori constante de tip constanta numerica sau sir de caractere atribuite unor
nume simbolice simbolurile putind fi inlocuite in locul (alorilor respecti(e"
Arhitectura Calculatoarelor ?7
a) >chi(alarile numerice sint folosite pentru a atribui o constanta numerica unui simbol" Acestea pot fi#
- redefinibile# (aloarea unui simbol poate fi redefinita in orice moment in timpul asamblarii&
$inta*a unei echi(alari numerice redefinite este#
nume F e8preie
unde#
e8preie poate fi un intreg o e*presie constanta o constanta de tip sir de caractere sau doua constante sau
o e*presie e(aluata la o adresa"
nume este un nume de simbol unic sau un nume de simbol definit anterior cu F"
- neredefinibile# (aloarea simbolului nu poate fi redefinita in timpul asamblarii"
$inta*a unei echi(alari numerice neredefinibile este#
nume >TU e8preie
parametrii a(ind semnificatiile#
nume este un nume de simbol unic&
$imbolurile definite prin echi(alari numerice pot fi folosite in constructii ulterioare ca operanzi imediati"
Acestor simboluri nu li se aloca memorie"
8peratorii admisi in cazul folosiri e*presiilor constante sunt#
1"operatori aritmetici#
U si - unari U si - binari Y si J(impartire intreaga) mod(rest)" 8peraorii binari U si - se pot folosi si cind un
operad este o constanta si celalalt o adresa rezultatul fiind o adresa" 8peratorul binar se poate folosi si cind
ambii operanzi sint adrese cu restrictia de a fi plasati in acelasi segment rezultatul fiind o constanta"
7"operatori de deplasare#
$@9 si $@6 realizeaza deplasarea logica dreapta stinga" $inta*a este e*presie $@9J$@6 cant unde cant
reprezinta numarul de biti deplasati"
?"operatori logici la ni(el de biti#
Acestia sint# ,8) A,1 89 G89"
4")]+> intoarce un numar ce reprezinta tipul unei e*presii&
D"$%K> intoarce numarul total de octeti alocati pentru un tablou sau ((ariabila definita cu 1U+)&
3"@%:@ 68O selecteaza octetii cel mai semnificati( respecti( cel mai putin semnificati( ai unei
e*presii&
>*emplificare echi(alari #
1A)A $>:E>,) O891 V1A)AV
intgr F 14Y? &F47
intgr F intgrJ4 &1.
intgr F intgr mod 4 &7
intgr F intgrU4 &3
intgr F intgr-? &?
89: 1..h
a 1H C &aduna 1..h
b 1H C &aduna 1.1h
mem1 >TU aUD &mem1F1.Dh
mem7 >TU a-D &mem7F.=Hh
const >TU b-a &constF1
(al F .111.111b
depls F (al $@6 ? &F.111.111...b
depld F (al $@9 ? &F.1111b
offMa >TU 8==$>) a
highMoffMa >TU @%:@ offMa
segMb >TU $>: b
Arhitectura Calculatoarelor ??
(ect 1O 3. 1U+(C)
sM(ect >TU $%K> (ect &3. Y 7 F 17.
lM(ect >TU 6>,:)@ (ect &3.
tM(ect >TU )]+> (ect &7
(erif >TU tM(ectYlM(ect &F7Y3.
1A)A >,1$
>,1
%n general echi(alarile sint pastrate in fisiere separate de includere fiind incluse intr-un program prin
intermediul directi(ei %,C6U1>"
%&5 6ubprograme i macroinstru iuni
;n general definirea unui subprogram se face cu directi(a >?@* !n maniera urmtoare#
nume >?@* [;0A? i =A9\
corp
?0& [constanta\
nume 0;D>
1ac atributul ;0A? i AA? lipsesc !n cazul utilizrii definiiilor complete se consider implicit
;0A? iar !n cazul definiiilor simplificate se folosesc (alorile implicite !n funcie de modelul de memorie
utilizat"
)ehnicile de transfer a parametrilor combin di(ersele modaliti de alegere a tipurilor de locaii
fizice pentru pstrarea parametrilor transmii# registre locaii de memorie fi*ate codul apelant sti(a
procesorului tehnica blocurilor (tabelelor) de parametri cu ceea ce se transmite efecti( referitor la un anumit
parametru# adresa sau (aloarea acestuia"
#nstructiunea C(33 (apel de procedura)
+oate aparea sub una din formele#
*ALL numeBproc
*ALL ;0A? >&? numeBproc
*ALL AA? >&? numeBproc
)ipul apelului poate fi dedus din tipul procedurii (primul caz) sau specificat e*plicit prin ,>A9 si
=A9" )ipul apelului trebuie sa coincida cu tipul procedurii si cu tipul instructiunii 9>)U9, din
interiorul procedurii"
#nstructiunea 9+T (9+T?94)
=orma general#
?0& CnD
unde n este o constanta intreaga optionala"
1aca instructiunea 9>) este de tip ,>A9 semnificatia sa este#
(%+) $$# (($+) U 1#($+))
($+) ($+) U 7
/($+) ($+) U n0
adica se reface (%+) prin copierea continutului (arfului sti(ei si incrementarea cu 7 a lui ($+)" 1aca in
instructiunea 9>) apare si constanta n atunci aceasta constanta se aduna la ($+) adica se descarca sti(a"
>*emplu#
1A)A $>:E>,)
a 11 DDDDDh
b 11 NNNNNh
s 11 C
1A)A >,1$
C81 $>:E>,)
"""
& incarca primul numar in 1G#AG
mo( a*O891 +)9 a/.0
Arhitectura Calculatoarelor ?4
mo( d*O891 +)9 a/70
& incarca al doilea number in 1%#$%
mo( siO891 +)9 b/.0
mo( diO891 +)9 b/70
& incarca adresa rezultatului in HG
mo( b*8==$>) s
& apeleaza procedura
call proMad
"""
& codul procedurii
proMad +98C,>A9
add a*si
adc d*di
mo( /b*0a*
mo( /b*U70d*
ret
proMad >,1+
"""
C81 >,1$
: macroinrtuctiune reprezinta o sec(enta de cod sursa careia i se atribuie un nume simbolic continutul
acastei sec(ente putind fi repetat ori de cite ori in cadrul unui program prin simpla referire la numele
simbolic respecti(" Utilizarea unei macroinstructiuni necesita parcurgerea a doi pasi#
1"1efinirea macroinstructiunii care se marcheaza printr-o macrodefinitie" Aceasta cuprinde o sec(enta de
cod intre directi(ele EAC98 si >,1E" $inta*a este#
nume EAC98 [parametrii\
cod
>,1E
unde#
nume reprezinta numele simbolic dat macroinstructiunii &
parametrii reprezita parametrii formali optionali ai macroinstructiunii separati prin (irgula blancuri
sau )AH-uri" 6a apelul macroinstructiunii acesti parametri formali sint inlocuiti te*tual cu parametrii
actuali"
7"Apelul macroinstructiunii care se realizeaza printr-un macroapel cu sinta*a#
nume [argumente\
unde#
nume reprezinta numele simbolic al macroinstructiunii apelate&
argumente reprezinta lista parametrilor actuali separati prin (irgula blancuri sau )AH-uri"
Apelul macroinstructiunii are ca efect includerea te*tuala a codului din definitia macroinstructiunii in
corpul programului"
>*emplu # Adunarea a ? cu(inte cu depunerea rezultatului in a*"
)%)6> e*emplu
addup EAC98 ad1ad7ad?
mo( a*ad1
add a*ad7
add a*ad?
>,1E
a 1O 1
b 1O 7
c 1O ?
Arhitectura Calculatoarelor ?D
d 1O C
begin#mo( a*P1A)A
mo( dsa*
addup abc
mo( d*a*
addup d*d*d*
mo( da*
addup dd*c
>,1 begin
+entru definirea unor simboluri in cadrul unei macroinstructiuni care la fiecare apel al macroinstructiunii
respecti(e (or fi inlocuite cu nume unice de simboluri gesionate de asamblor se utilizeaza directi(a 68CA6
cu sinta*a#
,:EA, nume [nume\ """

1irecti(a 68CA6 daca este prezenta intr-o macrodefinitie trebuie sa urmeze imediat directi(ei
EAC98"
>*emplu# 9idicarea unui numar la o putere"
power EAC98 factore*ponent
68CA6 againgotzero
*or d*d*
mo( a*e*ponent
mo( a*1
again# 'c*z gotzero
mul b*
loop again
gotzero#
>,1E
Arhitectura Calculatoarelor ?3
2. %tructura calculatoarelor
)&! Componentele func$ionale i clasificarea
,oiunea de la care pornim este aceea de calculator& acesta este un sistem programabil de prelucrare
a informaiei care are dou componente eseniale inseparabile i definitorii# hard%are i soft%are.
A. 1in punct de (edere hard%are' calculatorul are trei componente funcionale legate !ntr-un mod
specific (=igura ?"1)"
Hlocurile funcionale sunt#
1" Enitatea central de prelucrare (UC+) are dou funcii eseniale#
prelucrarea datelor&
controlul acti(itii !ntregului calculator"
8 unitate central de prelucrarea informaiei a(-nd funciile enunate mai sus care coordoneaz
un sistem structurat funcional ca !n =igura ?"1 i care fizic se prezint sub forma unui singur cip (circuit
integrat) se numete microprocesor" Aceast accepiune standard a noiunii (a fi folosit !n continuare
pentru detalierea conceptelor care stau la baza funcionrii !ntregului calculator"
7" F0F@?GA este din punctul de (edere al sistemului pe care !l definim o sec(en de locaii pentru
stocarea informaiei"
=iecare locaie este definit prin dou entiti informaionale#
*oninutul' reprezentat de o !niruie de cifre binare . sau 1 (bbiib)& se (a obser(a c nu am
folosit noiunea de bnumr binarb pentru c informaia stocat !ntr-o locaie de memorie poate
a(ea di(erse semnificaii" ,umrul de cifre binare coninute !ntr-o locaie depinde de modul !n
care microprocesorul organizeaz informaia !n memorie& mrimea unei locaii (a fi denumit
formatul memoriei' e*primat !n numr de bii (de regul 2 sau 13 bii)" =ormatul memoriei nu
are nici-o legtur cu organizarea fizica a cipurilor de memorie&
=igura ?"1
Adres' reprezent-nd numrul de ordine al locaiei care permite identificarea sa !n cadrul
sec(enei de locaii (e*ist o coresponden biuni(oc !ntre fiecare locaie de memorie i adresa
C+U
E>E89]
%J8
Eagistrala date
Eagistrala adrese
Egistrala control
Arhitectura Calculatoarelor ?N
sa)"
;n pri(ina memoriei unui calculator (om folosi c-te(a noiuni#
H+arta memorieiH' definit ca fiind totalitatea locaiilor de memorie pe care le poate adresa un
microprocesor"
H>aginiH iJsau HsegmenteH sunt subdi(iziuni logice ale hrii memoriei ale cror dimensiuni
fi*e sau dinamice sunt specifice modului !n care un microprocesor anume organizeaz
memoria" $ubliniem din nou c aceste moduri de organizare nu au nici-o legtur cu structura
fizic a memoriei unui calculator"
?" Dispozitivele de intrare6 ie ire (%J8. sunt constituite din circuitele prin care se realizeaz legtura
!ntre calculator i lumea e*terioar" 8 unitate elementar de con(ersaie cu e*teriorul poart numele de
Hport de intrare6ieireH. ;ntre porturi i locaiile din memorie e*ist nite similitudini#
+orturile sunt !n esen tot locaii de memorare a informaiei adresabile& desigur informaia care
se folosete uzual aici este alctuit din operanziJrezultate (date)"
>*ist o Hhart a porturilorH care aa cum (om arta !n capitolele urmtoare poate sau nu s fac
parte din harta memoriei"
$ingura deosebire esenial fa de locaiile de memorie este legtura fizic pe care porturile o asigur
cu e*teriorul( pentru microprocesor de multe ori aceast legtur fizic este transparent i
nesemnificati("
;n sf-rit componena hardware a calculatorului comport un set de legturi specifice& acestea se
realizeaz printr-o aa numit bmagistralb# un set de cone*iuni fizice !ntre blocuri prin care informaia
care circul are o semnificaie prestabilit" $istemele la care ne referim au o magistral unic ce le
caracterizeaz& din punct de (edere funcional e*ist trei componente ale acestei magistrale
indi(idualizate i !n =igura ?"1#
1" Fagistrala de date' bidirecional permite circulaia datelor (operanziJrezultate) a instruciunilor i
chiar a adreselor"
7" Fagistrala de adrese' unidirecional permite microprocesorului s localizeze informaia !n
Eemorie sau !n 1ispoziti(ele de intrareJieire& deci pe aceast magistral circul numai adrese"
?" Fagistrala de control permite circulaia bidirecional a semnalelor de comand i control de laJla
microprocesor !n calitatea sa de Unitate central"
4. 1in punct de (edere oftIare8 a doua component definitorie a calculatorului definirea rezult
practic din considerentele anterioare# o serie de programe organizate !n moduri specifice"
+rezentarea acestor noiuni i definirea lor ne permit c-te(a concluzii care s fac o prim delimitare
asupra conceptului de microprocesor aa cum este el !neles !n (olumul de fa#
Eicroprocesorul constituie Unitatea central de prelucrare a unui sistem a(-nd schema
bloc funcional din =igura ?"1" %mportant este c el concentreaz i funcia de prelucrare i pe
cea de comand"
)oate celelalte componente ale sistemului nu au putere de decizie" Eemoria de pild nu
controleaz i nici nu e necesar s controleze semnificaia informaiei pe care o deine i modul !n
care este organizat logic.
6egtura dintre blocuri este asigurat de o magistral unic cu trei componente
funcionale& pe magistrala de date circul toate tipurile de informaii"
=uncionarea sistemului se face pe baza unor programe alctuite din sec(ene de
instruciuni" Acestea sunt citite din memorie de ctre microprocesor recunoscute i apoi
e*ecutate"
Calculatoarele deseori se caracterizeaz prin #
a) <iteza de calcul - este o e(aluare determinat analitic sau e*perimental a (olumului de
instruc iuni (comenzi) e*ecutate de calculator !ntr-o unitate de timp" <iteza de calcul se msoar
!n milioane de instruc iuni e*ecutate pe secund (milion instruction per second E%+$) milioane
de instruc iuni !n (irgul mobil ( megaflops E=68+$ )"
a) 6imea magistralei de date B limea (mrimea ) ma*imal a codului informatic care poate fi
prelucrat pstrat i transferat !n calculator ca o unitate !ntreag"
b) Capacitatea de stocare a memoratoarelor B cantitatea informaiei codate concomitent pstrat !n
memoratoarele calculatorului" +entru msurarea capacitii de stocare se folosesc urmtoarele
prefi*e#
Arhitectura Calculatoarelor ?2
1LiloHAte F 7
1.
HAte j 1.
?
HAte
1EegaHAte F 7
7.
HAte j 1.
3
HAte
1:igaHAte F 7
?.
HAte j 1.
S
HAte
1)erraHAte F 7
4.
HAte j 1.
17
HAte
Clasificarea calculatoarelor conform caracteristicilor men ionate este neactual"
+rezentm c-te(a clasificri moderne"
%ndustria modern produce o mare (arietate de calculatoare" 1in aceast (arietate (om clasifica
orientati( calculatoarele ( >" )anenbaum b8rganizarea structurat a calculatoarelorb)#
circuitul integrat sau calculatoare bone-offb domeniul de utilizare B de e*" felicitrile (cr i
po tale) &
calculatoare integrate (microcontrolere) - ceasuri maini diferite dispoziti(e&
console de 'ocuri B 'ocuri la domiciliu&
calculatoare personale +C B (ariantele desItop i laptop-uri&
ser(ere - ser(ere de re ea &
grupe (clastere) de staii de lucru (C8O- Cluster 8f OorIstations) B multicalculatoare conectate !n
re ele &
Eainframe - prelucrarea a bazelor de date !ntr-o banc"
Circuite integrate
>le mai sunt numite calculatoare bone-offb" Aceste circuite pot fi lipite pe cr i po tale i interpreteaz
melodii cu tematica specific anumitor srbtori J ani(ersari de tipul k@appA HirthdaAl" +robabil cea
mai semnificati( realizare !n acest domeniu a fost apari ia circuitelor 9=%1 (9adio =reRuencA
%dentification m )ehnologia identificrii prin radiofrec(en)" Aceast tehnologie presupune stocarea
informaiilor nu prin codurile de bare ci prin intermediul unor cipuri electronice integrate de e*" !n
etichete ecusoane ambala'e de marf corpurile animalelor etc" Aceste informaii ce reprezint un cod
unic din 172 bi i pot fi citite de la distan de c-i(a metri prin unde radio" 1imensiunea acestor circuite
este mai mic de .Dmm costul fiind de c- i(a cen i" Circuitele nu utilizeaz surse de alimentare i pot
stoca informa ia mult timp"
%nforma ia detaliat o pute i gsi pe site-ul www"rfid"org"
Eicrocontrolere
6a modul general un microcontroler este actualmente o structur electronic destinat controlului
(destul de e(identa) unui proces sau mai general unei interac iuni caracteristice cu mediul e*terior fr
s fie necesar inter(en ia operatorului uman" >l reprezint un microcircuit care incorporeaz o unitate
central (C+U) i o memorie !mpreun cu resurse care-i permit interac iunea cu mediul e*terior" )oate
aplica iile !n care se utilizeaz microcontrolere fac parte din categoria a a ziselor sisteme !ncapsulate-
integrate (Wembedded sAstemsX) la care e*isten a unui sistem de calcul incorporat este (aproape)
transparent pentru utilizator" +rintre multele domenii unde utilizarea lor este practic un standard
industrial se pot men iona#
!n industria de automobile (controlul aprinderiiJmotorului climatizare diagnoz sisteme de alarm
etc") !n a a zisa electronic de consum (sisteme audio tele(izoare camere (ideo i (ideocasetofoane
telefonie mobil :+$-uri etc") !n aparatura electrocasnic (ma ini de splat frigidere cuptoare cu
microunde aspiratoare) !n controlul mediului i climatizare (sere locuin e hale industriale) !n industria
aerospa ial !n mi'loacele moderne de msurare (aparate de msurare senzori i traductoare inteligente)
la realizarea de periferice pentru calculatoare !n medicin"
Ca un e*emplu din industria de automobile unde numai la ni(elul anului 1SSS un HEO seria N
utiliza 3D de microcontrolere iar un Eercedes din clasa $ utiliza 3? de microcontrolere& iar un a(ion
peste 7.." +ractic este foarte greu de gsit un domeniu de aplica ii !n care s nu se utilizeze
microcontrolerele"
Console de 'ocuri" 8 consol de 'ocuri este un sistem dedicat 'ocurilor (ideo ce reprezint de fapt un
calculator interacti( pentru distrac ii" 1eseori const din 7 unit i# un controller - cu a'utorul cruia
utilizatorul poate introduce date sau interac iona cu obiectele de pe ecran i un bloc ce con ine un
procesor 9AE i un coprocesor pentru audio-(ideo incorporate intr-o carcas la care se conecteaz
Arhitectura Calculatoarelor ?S
tele(izorul i controlerul" +rezentm caracteristicile principale ale $onA +laA$tation4" ,oua consol (a
a(ea un procesor AE1 daguar cu 2 nuclee i un :+U AE1 9adeon de 124 teraflopi alturi de memorie
9AE :119D de 2:H i spatiu de stocare @11 p-n 34. :H" $pecifica iile +$4 includ i Hlu-raA dri(es
cu un (olum de 7D. :H alturi de conecti(itate U$H ?". Hluetooth 4". @1E% Oi-=i i >thernet"
Calculatoare personale
Calculatoare personale (+C) se di(izeaz !n 7 grupe# (ariantele desItop i portabile (laptop notebooI
palmtop (+1A)" ;n structura lor de regul intr# microprocesoare module de memorie de gigabAtes hard
discuri de terabAtes C1-98EJ1<1 dri(es modemuri plci (ideo audio de re ea monitoare "a"
sisteme de operare comple*e instalate"
$er(ere
Un ser(er este o un calculator care opereaz continuu !n re eaua sa i a teapt solicitri din partea
altor calculatoare din re ea pentru a asigura accesul la toat paleta de forme de conectare i ser(icii"
Eulte componente de hardware sunt identice cu cele ce le gsim !ntr-un calculator personal" )otu i
ser(erele ruleaz sisteme de operare i programe specializate care sunt diferite fa de cele folosite pe
calculatoare personale"
$er(erele deser(esc resurse hardware care sunt parta'ate i pot uneori fi comandate de ctre
calculatoarele-client cum ar fi imprimante (atunci ser(erul se nume te print server) sau sisteme de fi iere
(atunci el se nume te file server)" Aceast parta'are permite un acces i o securitate mai bune" Cu toate c
ser(erele pot fi construite din comoditate din componente obi nuite de calculatoare este necesar ca
pentru opera ii rapide i de mare amploare ser(erele s foloseasc configura ii hardware optimizate
pentru aceste cerin e" Cu toate c ser(erele ofer mult spa iu pe disc pentru mrirea siguran ei !n
func ionare sunt folosite hard-discuri de capacitate redus numeroase interconectate !n mod special"
=olosirea mai multor microprocesoare duce la o mai mare fiabilitate !n compara ie cu un singur
microprocesor" 1e asemenea se folosesc Eninterruptible >o%er Iupplies (U+$-uri) pentru a fi siguri de
continuitatea de alimentare cu energie electric astfel ca penele din re eaua public de curent s nu
pro(oace stricciuni ireparabile" 1iferen a ma'or !ntre computerele personale i ser(ere nu este partea
hardware ci partea de software" +e ser(ere ruleaz sisteme de operare care sunt special proiectate pentru
acestea" 1e asemenea ele ruleaz aplica ii special proiectate pentru procesele dorite" ;n lumea ser(erelor
cele mai populare sistem de operare sunt =reeH$1 $un $olaris i :,UJ6inu* B care deri( i sunt
asemntoare cu sistemul de operare U,%G" U,%G a fost o alegere logic i eficient ca sistem de operare
pentru ser(ere"
:rupe (clastere) de staii de lucru ( C8O- Cluster 8f OorIstations)
Clasterele constau din zeci sute mii de +C-uri sau statii de lucru conectate in retea prin placi de retea de larg
consum" $istemele C8O sunt gestionate de soft specializat ce permite s direc ioneze resursele lor pentru a
rezol(a diferite probleme inginere ti i tiin ifice" 1ac frec(en a accesrilor la paginile web-site-ului se
estimeaz la mii zeci de mii pe secund este con(enabil ca ser(erele s fie organizate !n clastere de sta ii de
lucru"
Calculatoarele Eainframe
Calculatoarele mainframe sunt calculatoare ce pot e*ploata (olume imense de date i pot suporta
lucrul a mii de utilizatori simultan" Un calculator mainframe se distinge mai ales prin capacitatea de
stocare i memoria intern" >l poate rula ani !ntregi fr !ntrerupere Unele calculatoare pot rula mai
multe sisteme de operare simultan oper-nd astfel ca o mulime de Wmaini (irtualeX" +reul unui astfel de
calculator este de ordinul sutelor de mii de dolari" >ste solicitat de companiile care (ehiculeaz i
prelucreaz un (olum foarte mare de informaie" +rincipala diferen !ntre supercalculatoare i mainframe
este c primele se folosesc pentru operaii ce necesit calcule intense !n timp ce mainframe efectueaz
operaii de comple*itate redus asupra unor (olume mari de date"
$upercalculatorul posed resurse hardware i software deosebite" $e utilizeaz !n industria de
aprare !n cercetarea tiinific !n c-te(a uni(ersiti !n industria aeronautic i spaial" 1epartamentul
>nergiei $UA deine un supercomputer din lume &he ?oadrunner" Acesta are o putere de calcul de 1
petaflop (1... trilioane operaii pe secund)" 8cup o suprafa de 11.. m7 i a fost construit din N.. de
procesoare AE1 8pteron"
;n anul 7.1? compania CraA (a realiza pentru 1epartamentul >nergiei al $UA un supercomputer
cu o putere de calcul de 7. peta operaii de secund (7. petaflops) numit )itan" Astfel !n scurt timp (anul
Arhitectura Calculatoarelor 4.
7.7D) se (a realiza un supercomputer cu o putere de calcul de 1. e*aflops (1.
7.
flops) care (a fi capabil
s simuleze acti(itatea creierului uman"
;n studiul arhitecturilor de calcul este foarte util e*istena unei metode de comparare a diferitelor
arhitecturi fr a fi necesar compararea specificaiilor detaliate ale fiecrei arhitecturi" Astfel c
arhitecturile de calcul sunt clasificate pe baza unui set mai restr-ns de caracteristici"
Elaificarea lui Hl"nn
Cea mai cunoscut clasificare a arhitecturilor de calcul este cea propus de =lAnn (profesor la
$tanford Uni(ersitA) !n 1S33" Aceast clasificare nu e*amineaz structura e*plicit a sistemelor ci
urmrete flu*ul de date i de instruciuni prin acestea" +rin flu* de instruciuni se !nelege sec(ena de
instruciuni e*ecutat de o main sau unitate de e*ecuie& iar prin flu* de date se !nelege sec(ena de
date apelate de flu*ul de instruciuni"
1up =lAnn arhitecturile de calcul se !mpart !n urmtoarele patru categorii#
cu un flu* de instruciuni i un flu* de date ($%$1)&
cu un flu* de instruciuni i mai multe flu*uri de date ($%E1)&
cu mai multe flu*uri de instruciuni i un flu* de date (E%$1)&
cu mai multe flu*uri de instruciuni i mai multe flu*uri de date (E%E1)"
%I%$ ($ingle %nstruction $ingle 1ata)#
1in aceast categorie fac parte calculatoarele con(enionale care e*ecut un singur flu* de instruciuni
asupra unui singur flu* de date" Aceste siteme de calcul se mai numesc i calculatoare (on ,eumann"
=igura ?"7 Arhitectura (on ,eumann
%nstruciunile sunt e*ecutate sec(enial !ns pot e*ista suprapuneri !ntre acestea dac este
implementat conceptul de band de asamblare (pipeline) B ma'oritatea sistemelor $%$1 actuale utilizeaz
conceptul de band de asamblare" Calculatoarele $%$1 pot a(ea mai multe uniti funcionale (e*#
coprocesor matematic procesor grafic procesor de intrareJieire etc") !ns acestea sunt (zute ca o
singur unitate de e*ecuie"
=igura ?"? Arhitectura $%$1
UC B unitate de comand&
U> B unitate de e*ecuie element de procesare procesor&
EE B modul de memorie&
$% B flu* (ir) de instruciuni&
$1 B flu* (ir) de date"
>*emple de calculatoare $%$1# C1C 33.. C1C N3.. Amdhal 4N.J3 CraA-1"
%IM$ ($ingle %nstruction Eultiple 1ata)
Aceast categorie de arhitecturi cuprinde sistemele de calcul compuse din mai multe uniti de
e*ecuie identice aflate sub comanda unei singure uniti de control" Unitatea de control transmite acelai
flu* de instruciuni simultan tuturor unitilor de e*ecuie" )oate unitile de e*ecuie e*ecut simultan
aceeai instruciune asupra datelor din memoria proprie (e*ist sisteme ce au i o memorie parta'at
pentru comunicaii)" Unitatea de control trebuie s permit tuturor elementelor de procesare s-i termine
instruciunea curent !nainte de iniierea unei noi instruciuni astfel c e*ecuia instruciunilor trebuie
Arhitectura Calculatoarelor 41
sincronizat !ntre toate unitile de e*ecuie" Ca i ordin de mrime numrul procesoarelor implicate !ntr-o
structur $%E1 este de c-te(a mii"
Aplicabilitate# calculatoarele $%E1 sunt folosite !n cazul aplicaiilor paralele ce necesit un control fin
asupra datelor" >*emplu# reele neuronale"
>*emple de implementri $%E1# %66%AC-%< +>+> H$+ $)A9A, E++ 1A+ Connection Eachine
CE-1 CE-7 (de la )hinIing Eachines Corporation) Eass+ar E+-1 E+-7"
=igura ?"4 Arhitectura $%E1
)opologia reelei de interconectare nu apare !n clasificarea lui =lAnn"
MI%$ (Eultiple %nstruction $ingle 1ata)
Arhitecturile E%$1 au mai multe elemente de procesare fiecare e*ecut-nd un set diferit de instruciuni
asupra unui singur flu* de date" Acest lucru este realizabil !n dou moduri#
acelai element din flu*ul de date este prelucrat de toate procesoarele fiecare e*ecut-nd propriile
operaii asupra respecti(ei date&
un element din flu*ul de date este prelucrat de primul procesor rezultatul obinut este pasat mai
departe celui de-al doilea procesor "a"m"d" form-ndu-se astfel o macro-band de asamblare"
$ingurul e*emplu de implementare pentru acest tip de arhitecturi este C"mmp (calculator
multimicroprocesor) construit la Carnegie-Eellon Uni(ersitA" Acest calculator este reconfigurabil i poate
opera !n modurile $%E1 E%$1 i E%E1"
=igura ?"D Arhitectura E%$1
MIM$ (Eultiple %nstruction Eultiple 1ata)
Ea'oritatea sistemelor multiprocesor se pot !ncadra !n aceast categorie" Un sistem de calcul E%E1
are mai multe elemente de procesare interconectate fiecare a(-nd propria unitate de control" +rocesoarele
lucreaz fiecare asupra propriilor date e*ecut-nd asupra lor propriile instruciuni" $istemele E%E1 pot
a(ea i memorie parta'at" 8peraiile e*ecutate de fiecare procesor sunt independente intre ele deci
Arhitectura Calculatoarelor 47
modul lor de operare este asincron"
Acest tip de arhitecturi sunt aplicabile !n cazul aplicaiilor paralele (calcul paralel)"
>*emple de implementare# C"mmp Hurroughs 127D CraA-7 $1 CraA G-E+ $:%JCraA +ower
Challenge ArraA $:%JCraA 8rigin-7... @+JCon(e* $++-7... +luribus %HE ?N.J132 E+ Uni(ac
11..J2. )andemJ13 %HE ?.21J?.24 HH, HutterflA EeiIo Computing $urface (C$-1) =+$ )J4....
i+$C"
=igura ?"3 Arhitectura E%E1
8 (ariant !ntre $%E1 i E%E1 sunt arhitecturile %KM$ ($ingle +rogram Eultiple 1ata) !n care
unitile de procesare e*ecut acelai segment de cod asupra unor date diferite independent unul de
cellalt (!n mod asincron)"
$%E1 f $+E1 f E%E1
/re@entare general a microprocesoarelor #ntel
+rimele microprocesoare sunt produse la firma %ntel !n 1SN1# ele se bnumeaub 4..4 i 2..2 pe
patru i respecti( 2 bii" +rimul microprocesor considerat bstandardb care impune chiar o definire a
termenului i a unor concepte legate de aceast modalitate de prelucrare a informaiei este !ns 2.2.
produs tot de firma %ntel" )ot firma %ntel este cea care lanseaz primul microprocesor care lucreaz pe 13
bii - %ntel 2.23 (1SN2)" ;n 1SNS %ntel face aparent un pas !napoi# lanseaz 2.22 care este identic !n
interior cu 2.23 dar !n e*terior lucreaz pe 2 bii" $trategia firmei este limpede# muli fabricani nu sunt
pregtii s schimbe toate celelalte componente ale sistemelor de prelucrare pe 13bii aa c (or prefera
!nc microprocesoarele compatibile cu magistrala de 2 bii"
;n tabelul de mai 'os sunt prezentate generaiile i carateristicile de baz ale microprocesoarelor %ntel"
)abelul 1 - :eneraiile i carateristicile de baz ale microprocesoarelor %ntel
)ipJgeneraie Anul
6imea
magistralei
1ateJAdrese
Hii
Cache
%nterior
(61)
IH
=rec(ena
de tact a
magistralei
de memorie
(Ehz)
=rec(ena
de tact
(interioar)
(Ehz)
2.22J=irst
2.23J=irst
1SNS
1SN2
2J7.
13J7.
,one
,one
4"NN-2
4"NN-2
4"NN-2
4"NN-2
2.723J$econd 1S27 13J74 ,one 3-7. 3-7.
2.?231GJ)hird
2.?23$GJ)hird
1S2D
1S22
?7J?7
13J?7
,one
,one
13-??
13-??
13-??
13-??
2.4231GJ=ourth
2.423$GJ=ourth
2.4231G7J=ourth
2.4231G4J=ourth
1S2S
1S2S
1SS7
1SS4
?7J?7
?7J?7
?7J?7
?7J?7
2
2
2
2U2
7D-D.
7D-D.
7D-4.
7D-4.
7D-D.
7D-D.
D.-2.
ND-17.
+entiumJ=ifth
+entium
EEGJ=ifth
1SS?
1SSN
34J?7
34J?7
2U2
13U13
3.-33
33
3.-7..
133-7??
Arhitectura Calculatoarelor 4?
+entium +roJ$i*th
+entium %%J$i*th
1SSD
1SSN
34J?3
34J?3
2U2
13U13
33
33
1D.-7..
7??-?..
+entium
%%%J$i*th
1SSS 34J?3 ?7LU?7L 1.. 3D.-14..
+entium4J
$e(enth
7... 34J?3 34LU34L 1.. 1?..-?2..
Consacrarea definiti( a produselor %ntel o face firma %HE care !n 1S21 anun primele
calculatoare personale %HE +C-G) care folosesc 2.22J2.23" Aceste procesoare au introdus conceptul de
segmentare a memoriei# memoria este !mprit !n zone numite segmente de ma*im 34 LH iar cele patru
registre de segment pot pstra adresele de baz ale segmentelor acti(e" Aceste procesoare pot funciona
numai !n modul real care este un mod uniproces !n care se e*ecut un singur proces (program sau tasI)
la un moment dat"
;n 1S27 %ntel lanseaz microprocesorul 2.723 (ignorm c !ntre timp multe firme ca ,ational
=airchild 9CA $ignetics etc" produc componente similare)& acesta dei tot pe 13 bii introduce o serie
de noi concepte fundamentale care tind s schimbe chiar noiunea de microprocesor" +rocesorul 2.723
poate funciona !n modul real al procesoarelor precedente dar dispune i de un mod de adresare (irtual
sau mod protejat" Acest mod utilizeaz coninutul registrelor de segment ca selectori sau pointeri !n tabele
ale descriptorilor de segment" +rocesorul dispune de o unitate de gestiune a memoriei (irtuale" ;n modul
prote'at procesorul poate funciona !n regim multi-proces -multitasJing) !n care pot fi e*ecutate mai
multe procese !n mod concurent" ;n acest mod se realizeaz o comutare prin hardware !ntre procesele care
se e*ecut concurent" =irma %HE lanseaz i ea o nou generaie de calculatoare personale# +C-A)
(bAd(anced )echnologAb) care folosete %ntel 2.723"
+rocesorul 2.?23 a introdus !n cadrul arhitecturii Gntel registre de ?7 de bii utilizate at-t pentru
pstrarea datelor c-t i pentru adresare" +entru compatibilitate cu procesoarele anterioare aceste registre
s-au obinut prin e*tinderea registrelor de 13 bii fiind posibil utilizarea !n continuare a (echilor registre
acestea constituind 'umtatea de ordin inferior a registrelor de ?7 de bii" A fost introdus un nou mod de
funcionare numit mod virtual K7K3" %nstruciunile originale au fost e*tinse cu noi forme care utilizeaz
operanzi i adrese de ?7 de bii i au fost introduse instruciuni complet noi ca de e*emplu instruciuni
pentru operaii la ni(el de bit"
+rocesorul 2.?23 a introdus de asemenea mecanismul de paginare ca metod de gestiune a
memoriei (irtuale" >l a fost primul din cadrul familiei 2.*23 care a utilizat o form de prelucrare paralel
i o memorie !ncorporat cache cu informaii despre p-n la ?7 de pagini cel mai recent accesate"
+rocesorul 2.423 a fost primul din familia 2.*23 la care unitatea de calcul !n (irgull mobil a
fost integrat !n acelai circuit cu unitatea central" +rocesorului i s-a adugat o memorie cache de ni(el 1
(61 B Level 1) de 2 LH" Au fost adugai de asemenea noi pini i noi instruciuni care permit realizarea
unor sisteme mai comple*e# sisteme multiprocesor i sisteme care conin o memorie cache de ni(el 7 (67
B Level 7)"
Au fost dez(oltate (ersiuni ale procesorului 2.423 !n care au fost incluse faciliti pentru reducerea
consumului de putere ca i alte faciliti de gestiune a sistemului" Una din aceste faciliti este noul mod
de gestiune a sistemului -I!stem Fanagement Fode B $EE) pentru care s-a pre(zut un pin dedicat de
!ntrerupere" Acest mod permite operaii comple*e de gestiune a sistemului (ca de e*emplu gestiunea
puterii consumate de diferitele subsisteme ale calculatorului) !ntr-un mod transparent pentru sistemul de
operare i pentru programele de aplicaii" =acilitile numite LItop *locJM i LAuto +alt >o%er do%nM
permit funcionarea unitii centrale la o frec(en redus a tactului pentru reducerea puterii consumate
sau chiar oprirea funcionrii (cu memorarea strii)"
;n 1SS? se lanseaz primul microprocesor al generaiei a cincea numit din acest moti( +entium"
+rocesorul >entium a adugat o nou linie de e*ecuie de tip pipeline a instruciunilor pentru a se obine
performane superscalare" Cele dou linii de e*ecuie a instruciunilor numite U i < permit e*ecuia a
dou instruciuni pe durata unei perioade de tact" Capacitatea memoriei cache 61 a fost de asemenea
dublat fiind alocai 2 LH pentru instruciuni i 2 LH pentru date" Eemoria cache pentru date utilizeaz
protocolul E>$% care permite gestiunea memoriei cache at-t prin metoda mai eficient L%rite4bacJX c-t
i prin metoda L%rite4throughM utilizat de procesorul 2.423" +rocesorul >entium utilizeaz predicia
salturilor pentru a crete performanele construciilor care utilizeaz bucle de program" 9egistrele
generale sunt tot de ?7 de bii dar s-au adugat magistrale interne de date de 172 i 7D3 de bii pentru a
crete (iteza transferurilor interne iar magistrala e*tern de date a fost e*tins la 34 de bii" +rocesorului i
s-a adugat un controler a(ansat de !ntreruperi -Advanced >rogrammable Gnterrupt *ontroller B A+%C)
Arhitectura Calculatoarelor 44
pentru a permite realizarea sistemelor cu mai multe procesoare >entium fiind adugate de asemenea noi
pini i un mod special de procesare dual pentru sistemele cu dou procesoare"
+rocesorul >entium >ro este primul din cadrul familiei de procesoare +3" Acest procesor are o
arhitectur superscalar !mbuntit care permite e*ecuia a trei instruciuni !ntr-o perioad de tact"
+rocesorul >entium >ro ca i urmtoarele procesoare din familia +3 se caracterizeaz prin e*ecuia
dinamic a instruciunilor care const din analiza flu*ului de date e*ecuia instruciunilor !ntr-o alt
ordine dec-t cea sec(enial o predicie !mbuntit a salturilor i e*ecuia speculati(" +e l-ng cele
dou memorii cache 61 de c-te 2 LH prezente i la procesorul >entium procesorul >entium >ro dispune
i de o memorie cache 67 de 7D3 LH aflat !n acelai circuit cu unitatea central conectat cu aceasta
printr-o magistral dedicat de 34 de bii" +rocesorul >entium >ro are o magistral de adrese e*tins la ?3
de bii astfel !nc-t spaiul adreselor fizice este de p-n la 34 :H"
+rocesorul >entium %% se bazeaz pe arhitectura >entium >ro la care s-au adugat e*tensiile EEG
-Fultimedia 0xtensions)" Eemoria cache 67 a fost mutat !n afara capsulei procesorului" At-t memoria
cache 61 pentru date c-t i memoria cache 61 pentru instruciuni au fost e*tinse la 13 LH fiecare"
1imensiunea memoriei cache 67 poate fi de 7D3 LH D17 LH 1 EH sau 7 EH" +rocesorul >entium %%
utilizeaz diferite stri cu consum redus de putere ca de e*emplu LAuto+AL&X LIleepM i LDeep IleepX
pentru reducerea puterii consumate !n perioadele de inacti(itate"
+entium %%% este ultimul din cadrul familiei +3 i se bazeaz pe arhitecturile procesoarelor >entium >ro i
>entium %%" Au fost adugate N. de noi instruciuni la setul de instruciuni e*istent" Acestea sunt destinate
at-t unitilor funcionale e*istente la procesoarele precedente c-t i noii uniti de calcul !n (irgul
mobil de tip $%E1 -Iingle Gnstruction' Fultiple Data)"
+rimul din familia +N numit +entium 4 a primit i o nou arhitectur cu o (itez de procesare mai
performant" ;n (ersiunea microprocesorului cu frec(ena de tact de ?.3 :hz a fost realizat o nou
tehnologie B hAperthreading" Aceast tehnologie permite ca procesele (programele) s fie di(izate !n dou
flu*uri de program pentru a fi procesate !n paralel de microprocesor ce mrete (iteza de procesare"
+entru creterea (itezei de prelucrare a datelor audio i (ideo a fost introdus un set suplimentar din $$>
instruciuni"
;n noembrie 7..4 firma %ntel a renunat la producerea !n serie a microprocesorului +entium 4 cu
frec(ena de 4 :hz din cauza dificultilor aprute la rcirea lui"
Actualmente firma %ntel !ncapsuleaz dou i mai multe nuclee de microprocesor cu frec(ene reduse
!n circuitul unui microprocesor ce e*clud dificultile cu rcirea lor"
>(oluia dispoziti(elor pe care am descris-o p-n !n acest moment se refer e*clusi( la
microprocesoarele ale cror caracteristici eseniale i arii de aplicaii posibile s-au dez(oltat de la tipurile
de baz lansate !n anii N." ,oi (om denumi aceste dispoziti(e b microprocesoareb i le (om defini !n acest
capitol& (om detalia !n e(oluia lor conceptele eseniale care stau la baza funcionrii lor !n capitole
urmtoare"
>*ist !ns i alte direcii de dez(oltare a dispoziti(elor de prelucrare a informaiei& un e*emplu sunt
aa numitele bprocesoare cu set redus de instruciunib (9%$C) a(!nd ca reprezentani procesoarele $+A9C
(produse de diferite firme) i23. (%ntel) E22... (Eotorola) etc" 1e asemenea e*ist procesoare
specializate pentru anumite tipuri de prelucrri specifice cum sunt procesoarele digitale de semnal (1$+)
i altele"
;n (olumul de fa ne (om ocupa de ceea ce este cunoscut sub numele de microproceor" Eoti(ul
pentru care am insistat pe reprezentanii familiei %ntel este acela c dup prerea noastr aceast firm
ofer reperele importante ale implementrii conceptelor de baz care caracterizeaz aceste dispoziti(e"
)&% .icroprocesoarele C#6C:9#6C
Eulte microprocesoare au seturi de instruciuni ce includ mai mult de 1.. B 7.. instruciuni" >le
folosesc o (arietate de tipuri de date i un mare numr de moduri de adresare" )endina aceasta de a mri
numrul de instruciuni a fost influenat de mai muli factori dintre care amintim#
perfecionarea unor modele de procesoare e*istente anterior pentru a pune la dispoziia
utilizatorilor (programelor utilizator) c-t mai multe funcii&
adugarea de instruciuni care s faciliteze translatarea din limba'ele de ni(el !nalt !n programe
cod e*ecutabil (limba' main)&
A a arhitecturi de microprocesoare au fost numite arhitecturi C%$C - Comple* %nstruction $et
Computer - calculator cu set comple* de instruciuni" C-te(a din caracteristici sunt#
Eulte instruciuni care prelucreaz operanzi din memorie&
Arhitectura Calculatoarelor 4D
=ormat de lungime variabil pentru instruciuni&
Unitate de control microprogramat (micro-codat) a(anta'oasa din punctul de (edere al
fle*ibilitii implementrii dar lent&
$et comple* (e*tins) de instruciuni i o mare (arietate de moduri de adresare&
Un numr relati( mic de registre !n interiorul UC+"
Utilizarea compilatoarelor optimizatoare - pentru a optimiza performanele codului obiect&
%deea simplificrii setului de instruciuni !n scopul mririi performanelor procesorului pro(ine din
proiectele realizate la uni(ersitile americane din HerIeleA (9%$C % 9%$C %% i $8A9) i $tanford
(proiectul E%+$)" +roiectele 9%$C (9educed %nstruction $et Computer - Calculator cu set redus de
instruciuni) au urmrit ca instruciunile procesorului s fie de aceeai lungime instruciunile s se
e*ecute !ntr-o singur perioad de ceas (cu a'utorul tehnicii de tip pipeline)" 6a 9%$C se urmrete de
asemenea ca accesrile la memorie (consumatoare de timp) s se efectueze doar pentru operaiile de
!ncrcare i stocare (arhitectura fiind numit !n consecin# bloadJstoreb) iar celelalte operaii s se
efectueze cu operanzi stocai !n registrele interne ale UC+" Unele din proiectele de arhitecturi 9%$C
folosesc un set mare de ferestre de registre pentru a accelera operaiile de apel al subrutinelor"
9ezum-nd putem enumera c-te(a din elementele caracteristice pentru mainile 9%$C#
Acces la memorie limitat doar prin instruciuni de ncrcare -load. i stocare -store.&
=ormat de lungime fix pentru instruciuni deci uor de decodificat& caracteristic care contribuie
la simplificarea structurii unitii de control&
structur simpl a unitii de control deci cu (itez mare de funcionare&
9elati( puine tipuri de instruciuni (tipic sub 1.. de instruciuni) i puine moduri de adresare
(din nou aceast caracteristic contribuie i la simplificarea structurii unitii de control)&
)ehnica de tip pipeline este utilizat i la arhitecturile C%$C dar la 9%$C tehnica este mai eficient
i mai uor de implementat datorit lungimii constante a instruciunilor&
Un numr relati( mare de registre !n interiorul UC+&
Asa cum s-a artat mai sus arhitecturile 9%$C restricioneaz numrul de instruciuni care acceseaz
direct memoria principal" Cele mai multe instruciuni ale 9%$C presupun doar operaii !ntre registrele
interne UC+" +entru c instruciunile comple*e nu e*ist !n setul de instruciuni dac este ne(oie de ele
acestea se implementeaz prin rutine cu a'utorul instruciunilor e*istente" ;n final !ntr-un program
e*ecutabil (or fi mai multe instruciuni dec-t la C%$C dar e*ecuia pe ansamblu (a fi mai rapid" =ormal
toate microprocesoarele *23 erau microprocesoare de tip C%$C dar microprocesoarele noi !ncep-nd de la
%ntel 4231G sunt microprocesoare C%$C cu un nucleu 9%$C" %nstruc iunile microprocesoarelor *23 de tip
C%$C !nainte de e*ecutarea lor sunt transformate !ntr-un set simplu de instruc iuni interne de tip 9%$C""
Eulte microprocesoare moderne !ncorporeaz arhitecturi 9%$C ca de e*emplu A9E 1>C Alpha
$+A9C A<9 E%+$ +8O>9 +ower+C"
)&) Banda de asamblare (pipeline)
%ntroducem no iunea de arhitectura suprascalar. +entru a e*plica aceast no iune urmrim utilizarea
microinstruciunilor e*ecutate !n paralel (tehnica bpipelineb) folosite de microprocesoarele moderne"
;ncep-nd cu microprocesorul i423 (fig" ?"N ) %ntel a introdus o band de asamblare numit tehnica
XpipelineX care const din D segmente#
Unitate de
e*ecuie !n
(irgul mobil
Unitate pentru
segmentare
Unitate pentru
paginare
Unitate de
interfa cu
magistrala
Eemoria
cache
Unitate
pentru
WprefetchX
Unitate pentru
decodificare
instruciuni
Unitate de
e*ecuie
Arhitectura Calculatoarelor 43
=igura ?"N
Ciclul main nfetchX(Citirea instruciunii din cache sau din memoria intern)&
1ecodificarea instruciunii B decodific !n microinstruc iuni&
:enerarea adresei pentru localizarea operanzilor !n memorie&
+relucrarea instruciunii !n UA6&
;nscrierea rezultatului ( unde (a fi !nscris rezultatul depinde de formatul instuciunii)"
)oate aceste segmente sunt e*ecutate !n paralel" 1in unitatea nprefetchX instruciunea se transfer !n
unitatea pentru decodificarea instruciuni i unitatea nprefetchX este liber i poate citi urmtoarea
instruciune" 1eci !n interiorul microprocesorului se afl D instruciuni !n diferite segmente de e*ecuie"
Aceste segmente formeaz o Hand de asamblare (pipeline)"
=igura ?"2 ilustreaz o band de asamblare cu D unitati numite si stages (segmente etape)" $egmentul 1
e*trage instructiunea din memorie si o plaseaza !ntr-un registru tampon" $egmentul 7 o decodifica
determin-ndu-i tipul si operanzii" $egmentul ? localizeaza si e*trage operanzii fie din registri fie din
memorie" $egmentul 4 e*ecuta instructiunea de obicei rul-nd operanzii prin calea de date iar segmentul
D scrie rezultatul !n registri"
=igura ?"2 - 8 banda de asamblare de D segmente (a)
$tarea fiecarui segment !n functie de timp (b)"
;n figura ?"2 Bb (edem cum opereaza o banda de asamblare !n functie de timp" ;n ciclul 1 segmentul
$1 lucreaza asupra instructiunii 1 (o e*tragere din memorie)" ;n ciclul 7 $7 decodifica instructiunea 1"
)ot !n ciclul 7 $1 e*trage instructiunea 7" ;n ciclul ? $? e*trage operanzii pentru instructiunea 1 $7
decodifica instructiunea 7 si $1 e*trage instructiunea ?"
Eicroprocesoarele ce includ o Hand de asamblare se numesc microprocesoare cu arhitectura scalar'
cele ce includ dou i mai multe - microprocesoare cu arhitectura suprascalar. Eicroprocesorul
+entium include dou Henzi de asamblare i poate e*ecuta 7 instruciuni pe durata unei perioade de ceas
(clocI stare)"
1ate fiind a(anta'ele benzii de asamblare ar fi de dorit mai multe din acestea" ;n figura ?"S este
prezentat o posibil proiectare a unui UC+ !n band de ansamblare duala" +entru a putea lucra !n paralel
cele 7 instructiuni nu trebuie s- i dispute resursele (de e*emplu registrele) i nici una nu trebuie s
depind de rezultatul celeilalte" =ie compilatorul trebuie s garanteze c ipoteza anterioara e respectat
fie conflictele sunt detectate i eliminate pe parcursul e*ecu iei cu a'utorul unui hardware suplimentar"
Arhitectura Calculatoarelor 4N
=igura ?"S Handa de ansamblare duala cu D segmente
+entium are dou benzi de ansamblare asemanatoare cu cele din fig" ?"S de i !mpartirea !ntre
segmentele 7 si ? (numite decode-1 si decode-7) este pu in diferit fa de cea din e*emplul nostru" Handa
de asamblare principal numita XuX pipeline poate e*ecuta orice instru tiune +entium !n timp ce a doua
band numit X(X pipeline poate e*ecuta doar instruc iuni pentru !ntregi i o instruc iune simpl !n
(irgul mobil B =GC@" 9eguli destul de comple*e determin dac instruc iunile sunt compatibile astfel
!nc-t s poat fi e*ecutate !n paralel"
Alte UC+ utilizeaz abordari cu totul diferite" %dea de baz este de a a(ea o singur band de
ansamblare dar cu mai multe unit i func ionale a a cum se obser(a !n figura ?"1."
=igura ?"1. - Un processor superscalar cu D unitati functionale
+rocesorul +entium %% are o structur asemntoare (sunt i diferen e) cu cea din fig" ?"1." Unita ile
func ionale UA6 din segmentul $4 pot e*ecuta instruc iuni timp de un ciclu de ceas iar cele care
acceseaz memoria sau care lucreaz !n (irgul mobil (mai lente) au ne(oie de mai mult timp dec-t un
ciclu de ceas pentru a- i e*ecuta func ia" 1up cum se poate obser(a pot e*ista mai multe unit i
func ionale !n segmentul $4"

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