Sunteți pe pagina 1din 10

Arhitectura Calculatoarelor

Evaluare 1. ntrebri
Explicai notiunea compilator.
Program special care asigur traducerea n calculatorul electronic a unui program scris ntr-un nivel
nalt n limbaj de asamblare sau n limbaj de main.

Explicai notiunea interpretor.


Translateaz fiecare instruciune n limbajul de nivel nalt ntr-o succesiune de instruciuni main,
acestea fiind executate imediat. n acest caz nu se genereaz un program executabil. Viteza de
execuie este ns redus, deoarece fiecare instruciune trebuie interpretat chiar dac ea este
executat n mod repetat.

Explicai notiunea main virtual.


Masina virtuala este un calculator imaginar, dotat cu un set de instructiuni ce constituie limbajul
(codul) virtual. Este un program de software cu functii speciale, care permite instalarea de sisteme
de operare multiple sau de programe diverse fara a mai fi necesara instalarea lor propriu-zisa pe
hard-disk.

Explicai diferena ntre compilare i interpretare.


Compilare: codul surs este translatat de un program denumit compilator n cod main, dup care
poate fi executat
Interpretare: un program este executat direct din cod surs prin intermediul unui interpretor

Destinaia registrelor generali (AX, BX, CX, DX, SP, BP, SI, DI).
Regitrii de uz general sunt implicai n operarea majoritii instruciunilor, drept operanzi surs sau
destinaie pentru calcule, copieri de date, pointeri la locaii de memorie sau cu rol de contorizare.

Destinaia registrelor segment.


Denumirile registrelor de segment sunt: CS-registru de segment de cod (code segment), DS-registru
de segment de date (data segment), SS-registru de segment de stiv (stack segment), ES-registru de
segment de date suplimentar (extra segment). regitrilor de segment sunt n strns legtur cu
noiunea de segmentare a memoriei. segmentare a memoriei presupune utilizarea unor adrese de
memorie formate din dou pri. Prima parte reprezint adresa segmentului iar cea de-a doua
poriune reprezint adresa de deplasament, sau offset-ul.

Destinaia registrului Flags.


Registrul indicatorilor de stare (FLAGS) pe 16 bii conine informaii legate de starea
microprocesorului precum i de rezultatele ultimilor instruciuni executate. Un indicator de stare
(flag) este n sine o locaie de memorie de 1 bit ce indic starea curent a microprocesorului i
modalitatea sa de operare. Un indicator se spune c este setat dac are valoarea 1 i nu este
setat n caz contrar.

Destinaia registrului IP.


Registrul pointer de instruciuni (IP Instruction Pointer) este folosit, ntotdeauna, pentru a stoca
adresa urmtoarei instruciuni ce va fi executat de ctre microprocesor. Pe msur ce o instruciune
este executat, pointerul de instruciune este incrementat i se va referi la urmtoarea adres de
memorie.

Ce indic perechea de registre (CS:IP)?


va indica totdeauna adresa urmtoarei instruciuni care se va executa

10 Ce indic perechea de registre (SS:SP)?


indic totdeauna adresa vrfului stivei

Arhitectura Calculatoarelor

11 Formarea adresei fizice.


Formarea adresei fizice (pe 20 de bii) este realizat automat (prin hardware) de ctre o component
a procesorului. Concret, adresa fizic se obine prin deplasarea adresei de segment cu 4 bii la
stnga i prin adunarea deplasamentului. Pentru specificarea unei adrese complete (de 32 de bii), se
folosete notaia (segment:offset) sau (registru_segment:offset). De exemplu, putem specifica o
adres prin (18A3:5B27) sau prin (DS:5B27).

12 Scriei un program ce definete date pe 16, 64 i 80 bii.


INCLUDE Irvine32.inc
.data
variabila1 WORD 0
variabila2 QWORD 0
variabila3 TBYTE 8 DUP(0)
.code
main PROC
exit
main ENDP
END main
13 Scriei un program ce definete date pe 8, 32 bii i n format BCD (mpachetat, despachetat).
INCLUDE Irvine32.inc
.data
v1 BYTE 02h,03h ; 32 in format BCD neimpachetat
v2 BYTE 32h, 12h ; 1232 in format BCD impachetat
v3 dword 0123h,0222h ;222123 in format BCD neimpachetat
v4 dword 1235h,4567h ; 45671235 in format BCD impachetat
.code
main PROC
exit
main ENDP
END main
14 Numii componentele funcionale ale unui calculator (hardware).
1. Unitatea centrala de prelucrare:
- prelucreaza datele din memoria interna
- controlul activitii ntregului calculator
2. MEMORIA - din punctul de vedere al sistemului pe care l definim, o secven de locaii pentru
stocarea informaiei. Dispozitivele de intrare/ ieire (I/O) sunt constituite din circuitele prin care se
realizeaz legtura ntre calculator i lumea exterioar.
3. Magistrala de control - permite circulaia, bidirecional, a semnalelor de comand i control de la/la
microprocesor, n calitatea sa de Unitate central.

Arhitectura Calculatoarelor

15 Explicai noiunea magistral.- un set de conexiuni fizice ntre blocuri prin care informaia care
circul are o semnificaie prestabilit.
16 Caracterizai circuitele RFID.
Aceast tehnologie presupune stocarea informaiilor nu prin codurile de bare, ci prin intermediul
unor cipuri electronice integrate, de ex. n etichete, ecusoane, ambalaje de marf, corpurile
animalelor etc. Aceste informaii, ce reprezint un cod unic din 128 bii, pot fi citite de la distan
de civa metri prin unde radio. Dimensiunea acestor circuite este mai mic de 0,5mm, costul fiind
de civa ceni. Circuitele nu utilizeaz surse de alimentare i pot stoca informaia mult timp.
17 Caracterizai grupa de calculatoare servere.
Un server este o un calculator, care opereaz continuu n reeaua sa i ateapt solicitri din partea
altor calculatoare din reea, pentru a asigura accesul la toat paleta de forme de conectare i servicii.
Serverele deservesc resurse hardware care sunt partajate i pot uneori fi comandate de ctre
calculatoarele-client, cum ar fi imprimante (atunci serverul se numete print server) sau sisteme de
fiiere (atunci el se numete file server). Aceast partajare permite un acces i o securitate mai bune.
Cu toate c serverele pot fi construite, din comoditate, din componente obinuite de calculatoare,
este necesar ca, pentru operaii rapide i de mare amploare, serverele s foloseasc configuraii
hardware optimizate pentru aceste cerine. Cu toate c serverele ofer mult spaiu pe disc, pentru
mrirea siguranei n funcionare sunt folosite hard-discuri de capacitate redus, numeroase,
interconectate n mod special.
18 Caracterizai grupa de calculatoare mainframe.
Calculatoarele mainframe sunt calculatoare ce pot exploata volume 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. El poate rula ani ntregi fr ntrerupere, Unele calculatoare pot rula mai
multe sisteme de operare simultan, opernd astfel ca o mulime de maini virtuale. Preul unui
astfel de calculator este de ordinul sutelor de mii de dolari. Este solicitat de companiile care
vehiculeaz i prelucreaz un volum foarte mare de informaie
19 Clasificarea lui Flynn. Arhitectura SISD.
Instruciunile sunt executate secvenial, ns pot exista suprapuneri ntre acestea dac este
implementat conceptul de band de asamblare (pipeline) majoritatea sistemelor SISD actuale
utilizeaz conceptul de band de asamblare. Calculatoarele SISD pot avea mai multe uniti
funcionale (ex: coprocesor matematic, procesor grafic, procesor de intrare/ieire, etc.), ns acestea
sunt vzute ca o singur unitate de execuie.
20 Clasificarea lui Flynn. Arhitectura SIMD.
Aceast categorie de arhitecturi cuprinde sistemele de calcul compuse din mai multe uniti de
execuie identice aflate sub comanda unei singure uniti de control. Unitatea de control transmite
acelai flux de instruciuni, simultan, tuturor unitilor de execuie. Toate unitile de execuie
execut simultan aceeai instruciune asupra datelor din memoria proprie (exist sisteme ce au i o
memorie partajat 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
execuia instruciunilor trebuie sincronizat ntre toate unitile de execuie. Ca i ordin de mrime
numrul procesoarelor implicate ntr-o structur SIMD este de cteva mii.
21 Clasificarea lui Flynn. Arhitectura MISD.
Arhitecturile MISD au mai multe elemente de procesare, fiecare executnd un set diferit de
instruciuni asupra unui singur flux de date. Acest lucru este realizabil n dou moduri: acelai
element din fluxul de date este prelucrat de toate procesoarele, fiecare executnd propriile
operaii asupra respectivei date; un element din fluxul de date este prelucrat de primul procesor,
rezultatul obinut este pasat mai departe celui de-al doilea procesor .a.m.d., formndu-se astfel o
macro-band de asamblare.

Arhitectura Calculatoarelor

22 Clasificarea lui Flynn. Arhitectura MIMD.


Majoritatea sistemelor multiprocesor se pot ncadra n aceast categorie. Un sistem de calcul MIMD
are mai multe elemente de procesare interconectate, fiecare avnd propria unitate de control.
Procesoarele lucreaz fiecare asupra propriilor date executnd asupra lor propriile instruciuni.
Sistemele MIMD pot avea i memorie partajat. Operaiile executate de fiecare procesor sunt
independente intre ele, deci modul lor de operare este asincron.
23 Explicai diferena ntre microprocesoarele CISC i RISC.
Procesoarele RISC au inaugurat un nou set de principii arhitecturale: setul deinstructiuni sa fie
simplu, instructiunile trebuie sa ruleze la cea mai mare viteza posibila, notiunea de pipeline este mai
importanta decit dimensiunea setului de instructiuni, tehnologia compilatorului este un element
critic intr-un proceso RISC. Punctele relevante ale arhitecturii RISC reprezinta si diferentele dintre
procesoarele CISC. Ca principiu, arhitectura RISC are mai multi registri generali, in timp ce CISC
are mai multi speciali.
24 Definii noiunile arhitectura scalar, superscalar.
Microprocesoarele ce includ o Band de asamblare se numesc microprocesoare cu arhitectura
scalara,cele ce includ dou i mai multe - microprocesoare cu arhitectura suprascalar.
25 Explicai funcionarea unei benzi de asamblare cu 5 segmente.
Ciclul main fetch(Citirea instruciunii din cache sau din memoria intern);Decodificarea
instruciunii decodific n microinstruciuni;Generarea adresei pentru localizarea operanzilor n
memorie;Prelucrarea instruciunii n UAL;nscrierea rezultatului ( unde va fi nscris rezultatul
depinde de formatul instuciunii).Toate aceste segmente sunt executate n paralel. Din unitatea
prefetch instruciunea se transfer n unitatea pentru decodificarea instruciuni, i unitatea
prefetch este liber i poate citi urmtoarea instruciune. Deci, n interiorul microprocesorului se
afl 5 instruciuni n diferite segmente de execuie. Aceste segmente formeaz o Band de
asamblare (pipeline). Segmentul 1 extrage instructiunea din memorie si o plaseaza ntr-un registru
tampon. Segmentul 2 o decodifica, determinndu-i tipul si operanzii. Segmentul 3 localizeaza si
extrage operanzii, fie din registri, fie din memorie. Segmentul 4 executa instructiunea, de obicei
rulnd operanzii prin calea de date, iar segmentul 5 scrie rezultatul n registri.
26 Explicai funcionarea unei benzi de asamblare duale cu 5 segmente.

Pentru a putea lucra n paralel, cele 2 instructiuni nu trebuie s-i dispute resursele (de exemplu
registrele) i nici una nu trebuie s depind de rezultatul celeilalte. Fie compilatorul trebuie s
garanteze c ipoteza anterioara e respectat, fie conflictele sunt detectate i eliminate pe parcursul
execuiei, cu ajutorul unui hardware suplimentar.
27 Explicai funcionarea unei benzi de asamblare cu 5 uniti funcionale.

Arhitectura Calculatoarelor

Procesorul Pentium II are o structur asemntoare (sunt i diferene) cu cea din fig. 3.10. Unitaile
funcionale UAL din segmentul S4 pot executa instruciuni timp de un ciclu de ceas, iar cele care
acceseaz memoria sau care lucreaz n virgul mobil (mai lente), au nevoie de mai mult timp
dect un ciclu de ceas pentru a-i executa funcia. Dup cum se poate observa, pot exista mai multe
uniti funcionale n segmentul S4.

Assembler
1. Instruciunea mov word ptr [bx],0:
a) ncarc registrul bx cu valoarea 0
b) ncarc n locaia adresat de bx valoarea 0 pe un octet
c) ncarc n locaia adresat de bx valoarea 0 pe un cuvnt
2. Implementai Instruciunea xchg bx,cx folosind stiva
push bx
push cx
pop bx
pop cx
3. Implementai Instruciunea xchg bx,cx folosind instruciuni de tip mov
mov ax,cx
mov cx,bx
mov bx,ax
4. Instruciunea in al,71h:
a) ncarc n registrul al valoarea 71h
b) citete n registrul al un octet de la portul 71h
c) scrie valoarea din registrul al la portul 71h
5. Instruciunea out 71h,al
a) ncarc n registrul al valoarea 71h
b) citete n registrul al un octet de la portul 71h
c) scrie valoarea din registrul al la portul 71h
6. Instruciunea adc dest, surs realizeaz operaia:
a) surs<--dest+ surs
b) dest<--dest+ surs
c) dest<--dest+ surs+carry
d) surs<--dest+ surs+carry
7. Instruciunea add dest, surs realizeaz operaia:
a) surs<--dest+ surs
b) dest<--dest+ surs
c) surs<--dest+ surs+carry
d) dest<--dest+ surs+carry

Arhitectura Calculatoarelor

8. Instruciunea sub dest, surs realizeaz operaia:


a) surs<--dest+ surs
b) dest<--dest- surs
c) dest<--dest+ surs
d) surs<--dest- surs
9. Instruciunea sbb dest, surs realizeaz operaia:
a) surs<--dest- surs
b) dest<--dest- surs
c) dest<--dest- surs+carry
d) dest<--dest- surs-carry
10. Instruciunea cmp dest, surs realizeaz operaia:
a) compara operanzii surs si destinaie prin aplicarea funciei logice "si"
b) compara operanzii surs si destinaie prin aplicarea funciei logice "sau"
c) compara operanzii surs si destinaie prin scdere.
11. Care este sintaxa corect a Instruciunii dec?
a) dec dest, surs
b) dec dest
c) dec
12. Care este sintaxa corect a Instruciunii not?
a) not dest, surs
b) not dest
c) not
13. Dac n registrul AL este stocat valoarea 11001001, dup Instruciunea shl al,3 se va obine:
a) 00011001
b) 01001000
c) 00100100
d)11001000
14. Dac n registrul AL este stocat valoarea 11001001, dup Instruciunea shr al,3 se va obine:

a) 00011001
b) 01001000
c) 00010010
d)11001000
15. Dac n registrul AL este stocat valoarea 11001001, dup Instruciunea rol al,3 se va obine:

a) 01001010
b) 01001110
c) 00111001
d)11001000
16. Dac n registrul AL este stocat valoarea 11001001, dup Instruciunea ror al,3 se va obine:

a) 01001010
b) 01001110
c) 00111001
d)11001000
17. Dac n val este stocat valoarea 0F000h, iar n registrul AX - 0F000h, dup Instruciunea
shld val,ax,4 n val se va obine:

Arhitectura Calculatoarelor

a)
b)
c)
d)

0FF00h
00FFh
0F00Fh
000Fh

18. Dac n val este stocat valoarea 0F000h, iar n registrul AX - 0F000h, dup Instruciunea
shrd val,ax,4 n val se va obine:

a)
b)
c)
d)

0FF00h
00FFh
0F00h
0F0Fh

19. Care este starea indicatorului carry dup Instruciunea rcl al,2 dac n AL se afla 00100101?

CF de la etapa precedenta
a) 0
b) 1
20. Care este starea indicatorului carry dup Instruciunea rcr al,2 dac n AL se afla 00100101?

CF de la etapa precedenta
a) 0
b) 1
21. Dac n AL avem 11011110, n urma instruciunii and al,0fh se obine valoarea:
a) 11011111

Arhitectura Calculatoarelor

b) 00001110
c) 11010001
22. Dac n AL avem 11011110, n urma instruciunii or al,0fh se obine valoarea:
a) 11011111
b) 00001110
c) 11010000
23. Dac n AL avem 11011110, n urma instruciunii test al,0fh se obine valoarea:
a) 11011111
b) 00001110
c) 11010001
d) 11011110
24. La instruciunile pentru manipularea irurilor:
a) irul surs este pointat de ESI
b) irul destinaie e pointat de ESI
c) irul surs e pointat de EDI
d) irul destinaie e pointat de EDI
25. Se poate seta sensul de parcurgerea irurilor de caractere?
a) Da
b) nu
c) uneori

26. Contorul pentru instruciunile cu iruri se afl n registrul:


a) AX
b) BX
c) CX
d) DX
27. Ce operaie realizeaz Instruciunea MOVSB?
MOVSB(Move(copy)bytes)
Transfer pe 8 bii, din zona de memorie indicat de ESI, n zona de memorie indicat de registrul
EDI. Dup transferul primului byte dac flag-ul DF=0, se petrece autoincrementarea ESIESI+1;
EDIEDI+1 (decrementare pentru DF=1).
28. Ce operaie realizeaz Instruciunea CMPSB?
CMPSB(compare bytes)
Comparare pe 8 bii, din zona de memorie indicat de ESI, cu zona de memorie indicat de registrul
EDI. Dup compararea primului byte dac flag-ul DF=0, se petrece autoincrementarea ESIESI+1;
EDIEDI+1 (decrementare pentru DF=1).

29. Ce operaie realizeaz Instruciunea SCASB?


SCASB(SCAS- scan a string)
Instruciunile compar valoarea din AL/AX/EAX cu byte, din zona de memorie indicat de EDI.
Instruciunile sunt utile la cutarea unui singur element ntr-un ir.
30. Ce operaie realizeaz Instruciunea LODSB?
LODSB(LODS- load accumulator from string)
Instruciunile ncarc valoarea din byte, din memorie idicat de ESI, n AL/AX/EAX respectiv.
Instruciunile sunt utile la cutarea unui singur element ntr-un ir.
31. Ce operaie realizeaz Instruciunea STOSB?
STOSB(STOS-store string data)

Arhitectura Calculatoarelor

Instruciunile ncarc valoarea din AL/AX/EAX , n memorie cu offset-ul indicat de EDI.


Incrementarea se petrece conform flag-ului DF (DF=0- incrementarea, DF=1- decrementarea).
32. Instruciunea jmp et realizeaz:
a) un salt necondiionat la et
b) un salt condiionat la et
c) apelul rutinei et
33. Ce operaii se realizeaz la execuia instruciunii CALL?
Apel de procedura. Poate aprea sub una din formele:
CALL nume_proc
CALL NEAR PTR nume_proc
CALL FAR PTR nume_proc
Tipul apelului poate fi dedus din tipul procedurii (primul caz) sau specificat explicit prin NEAR i
FAR. Tipul apelului trebuie s coincid cu tipul procedurii i cu tipul instructiunii RETURN din
interiorul procedurii.

34. Ce operaii se realizeaz la execuia instruciunii RET?


Forma general:
RET [n]
unde n este o constant ntreag opional.
Dac instruciunea RET este de tip NEAR semnificaia sa este:
[IP] SS: [[SP] + 1:
[SP]]
[SP] [SP] + 2
[[SP] [SP] + n]
adic se reface (IP) prin copierea coninutului vrfului stivei i incrementarea cu 2 a lui (SP). Dac n
instruciunea RET apare i constanta n atunci aceast constant se adun la (SP), adic se descarc
stiva.

35. Instruciunea JZ et realizeaz saltul la et dac:


a) flagul Zero este 1
b) flagul Zero este 0
c) flagul Sign este 1
d) flagul Sign este 0
36. Instruciunea JNZ et realizeaz saltul la et dac:
a) flagul Zero este 1
b) flagul Zero este 0
c) flagul Sign este 1
d) flagul Sign este 0
37. Instruciunea JC et realizeaz saltul la et dac:
a) flagul Zero este 1
b) flagul Zero este 0
c) flagul Carry este 1
d) flagul Carry este 0

Arhitectura Calculatoarelor

10

38. Instruciunea JNC et realizeaz saltul la et dac:


a) flagul Zero este 1
b) flagul Zero este 0
c) flagul Carry este 1
d) flagul Carry este 0
39. Instruciunea JCXZ et realizeaz saltul la et dac:
a) flagul Zero este 1
b) flagul Zero este 0
c) flagul Carry este 0
d) registrul CX este 0
40. Instruciunea corespunztoare etichetei et din LOOP et se afl:
a) naintea instruciunii LOOP
b) dup Instruciunea LOOP
c) nu se afla n programul respectiv
41. Instruciunea STC:
a) activeaz sistemul de ntreruperi
b) dezactiveaz sistemul de ntreruperi
c) pune carry pe 0
d) pune carry pe 1

42. Instruciunea CLC:


a) activeaz sistemul de ntreruperi
b) dezactiveaz sistemul de ntreruperi
c) pune carry pe 0
d) pune carry pe 1
43. Complementul fa de doi se utilizeaz pentru:
a) reprezentarea numerelor naturale
b) reprezentarea numerelor ntregi negative
c) reprezentarea numerelor reale negative
44. Cum sunt reprezentate n memorie caracterele?
In categoria datelor alfanumerice intra caracterele alfabetice, caracterele numerice, semnele de
punctuaie i caracterele de control.
Codificarea acestora se face conform codului standard ASCII (American Standard Code for
Information Interchange). Codul ASCII standard este un cod pe 7 bii (128 combinaii distincte). Ca
atare un caracter ASCII se reprezint pe un octet in care bitul cel mai semnificativ este
zero.Domeniul de valori este de la 0 la 127 (in hexazecimal de la 00h la 07fh).
Exemplu:
Caracterul 'a' are codul 61h, 'A' are codul 41h, '5' are codul 35h, '+' are codul 02Bh.
irurile de caractere sunt reprezentate prin succesiuni de octei ce cuprind codurile caracterelor
respective. De exemplu irul de caractere Aa4+b se reprezint pe 5 octei ce vor conine 41 61 34
2B 42h.
45. Cum sunt reprezentate numerele reale:
a) n mrime i semn
b) n format BCD
c) n format virgula mobila