Sunteți pe pagina 1din 11

1.Explicați 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 mașină.

2.Explicați notiunea – interpretor.


Translatează fiecare instrucţiune în limbajul de nivel înalt într-o succesiune de instrucţiuni maşină,
acestea fiind executate imediat. În acest caz nu se generează un program executabil. Viteza de
execuţie este însă redusă, deoarece fiecare instrucţiune trebuie interpretată chiar dacă ea este
executată în mod repetat.

3.Explicați notiunea – mașină 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.

4.Explicați diferența între compilare și interpretare.


– Compilare: codul sursă este translatat de un program denumit compilator în cod maşină, după care
poate fi executat
– Interpretare: un program este executat direct din cod sursă prin intermediul unui interpretor

5.Destinația registrelor generali (AX, BX, CX, DX, SP, BP, SI, DI).
Regiştrii de uz general sunt implicaţi în operarea majorităţii instrucţiunilor, drept operanzi sursă sau
destinaţie pentru calcule, copieri de date, pointeri la locaţii de memorie sau cu rol de contorizare.

6.Destinația 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). regiştrilor de segment sunt în strânsă legătură cu
noţiunea de segmentare a memoriei. segmentare a memoriei presupune utilizarea unor adrese de
memorie formate din două părţi. Prima parte reprezintă adresa segmentului iar cea de-a doua
porţiune reprezintă adresa de deplasament, sau offset-ul.

7.Destinația registrului Flags.


Registrul indicatorilor de stare (FLAGS) pe 16 biţi conţine informaţii legate de starea
microprocesorului precum şi de rezultatele ultimilor instrucţiuni executate. Un indicator de stare
(flag) este în sine o locaţie 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.

8.Destinația registrului IP.


Registrul pointer de instrucţiuni (IP – Instruction Pointer) este folosit, întotdeauna, pentru a stoca
adresa următoarei instrucţiuni ce va fi executată de către microprocesor. Pe măsură ce o instrucţiune
este executată, pointerul de instrucţiune este incrementat şi se va referi la următoarea adresă de
memorie.

9.Ce indică perechea de registre (CS:IP)?


va indica totdeauna adresa următoarei instrucţiuni care se va executa

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


indică totdeauna adresa vârfului stivei
11 Formarea adresei fizice.
Formarea adresei fizice (pe 20 de biţi) este realizată automat (prin hardware) de către o componentă
a procesorului. Concret, adresa fizică se obţine prin deplasarea adresei de segment cu 4 biţi la
stânga şi prin adunarea deplasamentului. Pentru specificarea unei adrese complete (de 32 de biţi), se
foloseşte notaţia (segment:offset) sau (registru_segment:offset). De exemplu, putem specifica o
adresă prin (18A3:5B27) sau prin (DS:5B27).

12 Scrieți un program ce definește date pe 16, 64 și 80 biți.


INCLUDE Irvine32.inc
.data
variabila1 WORD 0
variabila2 QWORD 0
variabila3 TBYTE 8 DUP(0)
.code
main PROC
exit
main ENDP
END main
13 Scrieți un program ce definește date pe 8, 32 biți ș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 Numiți componentele funcționale ale unui calculator (hardware).
1. Unitatea centrala de prelucrare:
- prelucreaza datele din memoria interna
- controlul activităţii întregului calculator
2. MEMORIA - din punctul de vedere al sistemului pe care îl definim, o secvenţă de locaţii pentru
stocarea informaţiei. Dispozitivele de intrare/ ieșire (I/O) sunt constituite din circuitele prin care se
realizează legătura între calculator şi lumea exterioară.
3. Magistrala de control - permite circulaţia, bidirecţională, a semnalelor de comandă şi control de la/la
microprocesor, în calitatea sa de Unitate centrală.
15 Explicați noțiunea – magistrală.- un set de conexiuni fizice între blocuri prin care informaţia care
circulă are o semnificaţie prestabilită.
16 Caracterizați circuitele RFID.
Această tehnologie presupune stocarea informaţiilor nu prin codurile de bare, ci prin intermediul
unor cipuri electronice integrate, de ex. în etichete, ecusoane, ambalaje de marfă, corpurile
animalelor etc. Aceste informaţii, ce reprezintă un cod unic din 128 biți, pot fi citite de la distanţă
de câţiva metri prin unde radio. Dimensiunea acestor circuite este mai mică de 0,5mm, costul fiind
de câțiva cenți. Circuitele nu utilizează surse de alimentare și pot stoca informația mult timp.
17 Caracterizați grupa de calculatoare – servere.
Un server este o un calculator, care operează continuu în rețeaua sa și așteaptă solicitări din partea
altor calculatoare din rețea, 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 către
calculatoarele-client, cum ar fi imprimante (atunci serverul se numește print server) sau sisteme de
fișiere (atunci el se numește file server). Această partajare permite un acces și o securitate mai bune.
Cu toate că serverele pot fi construite, din comoditate, din componente obișnuite de calculatoare,
este necesar ca, pentru operații rapide și de mare amploare, serverele să folosească configurații
hardware optimizate pentru aceste cerințe. Cu toate că serverele oferă mult spațiu pe disc, pentru
mărirea siguranței în funcționare sunt folosite hard-discuri de capacitate redusă, numeroase,
interconectate în mod special.
18 Caracterizați 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 fără întrerupere, Unele calculatoare pot rula mai
multe sisteme de operare simultan, operând astfel ca o mulţime de “maşini virtuale”. Preţul 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 informaţie
19 Clasificarea lui Flynn. Arhitectura SISD.
Instrucţiunile sunt executate secvenţial, î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 unităţi
funcţionale (ex: coprocesor matematic, procesor grafic, procesor de intrare/ieşire, etc.), însă acestea
sunt văzute ca o singură unitate de execuţie.
20 Clasificarea lui Flynn. Arhitectura SIMD.
Această categorie de arhitecturi cuprinde sistemele de calcul compuse din mai multe unităţi de
execuţie identice aflate sub comanda unei singure unităţi de control. Unitatea de control transmite
acelaşi flux de instrucţiuni, simultan, tuturor unităţilor de execuţie. Toate unităţile de execuţie
execută simultan aceeaşi instrucţiune asupra datelor din memoria proprie (există sisteme ce au şi o
memorie partajată pentru comunicaţii). Unitatea de control trebuie să permită tuturor elementelor de
procesare să-şi termine instrucţiunea curentă înainte de iniţierea unei noi instrucţiuni, astfel că
execuţia instrucţiunilor trebuie sincronizată între toate unităţile de execuţie. Ca şi ordin de mărime
numărul procesoarelor implicate într-o structură SIMD este de câteva mii.
21 Clasificarea lui Flynn. Arhitectura MISD.
Arhitecturile MISD au mai multe elemente de procesare, fiecare executând un set diferit de
instrucţiuni asupra unui singur flux de date. Acest lucru este realizabil în două moduri: acelaşi
element din fluxul de date este prelucrat de toate procesoarele, fiecare executând propriile
operaţii asupra respectivei date; un element din fluxul de date este prelucrat de primul procesor,
rezultatul obţinut este pasat mai departe celui de-al doilea procesor ş.a.m.d., formându-se astfel o
macro-bandă de asamblare.
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 având propria unitate de control.
Procesoarele lucrează fiecare asupra propriilor date executând asupra lor propriile instrucţiuni.
Sistemele MIMD pot avea şi memorie partajată. Operaţiile executate de fiecare procesor sunt
independente intre ele, deci modul lor de operare este asincron.
23 Explicați diferența î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 Definiți noţiunile ”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 Explicați funcționarea unei benzi de asamblare cu 5 segmente.
Ciclul maşină „fetch”(Citirea instrucţiunii din cache sau din memoria internă);Decodificarea
instrucţiunii – decodifică în microinstrucțiuni;Generarea adresei pentru localizarea operanzilor în
memorie;Prelucrarea instrucţiunii în UAL;Înscrierea rezultatului ( unde va fi înscris rezultatul
depinde de formatul instucţiunii).Toate aceste segmente sunt executate în paralel. Din unitatea
„prefetch” instrucţiunea se transferă în unitatea pentru decodificarea instrucţiuni, şi unitatea
„prefetch” este liberă şi poate citi următoarea instrucţiune. Deci, în interiorul microprocesorului se
află 5 instrucţiuni în diferite segmente de execuţie. 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, determinându-i tipul si operanzii. Segmentul 3 localizeaza si
extrage operanzii, fie din registri, fie din memorie. Segmentul 4 executa instructiunea, de obicei
rulând operanzii prin calea de date, iar segmentul 5 scrie rezultatul în registri.
26 Explicați funcționarea 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
execuției, cu ajutorul unui hardware suplimentar.

27 Explicați funcționarea unei benzi de asamblare cu 5 unități funcționale.


Arhitectura Calculatoarelor

Procesorul Pentium II are o structură asemănătoare (sunt și diferențe) cu cea din fig. 3.10. Unitațile
funcționale UAL din segmentul S4 pot executa instrucțiuni 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
decât un ciclu de ceas pentru a-și executa funcția. După cum se poate observa, pot exista mai multe
unități funcționale în segmentul S4.

Assembler
1. Instrucţiunea mov word ptr [bx],0:
a) încarcă registrul bx cu valoarea 0
b) încarcă în locaţia adresată de bx valoarea 0 pe un octet
c) încarcă în locaţia adresată de bx valoarea 0 pe un cuvânt
2. Implementaţi Instrucţiunea xchg bx,cx folosind stiva
push bx
push cx
pop bx
pop cx
3. Implementaţi Instrucţiunea xchg bx,cx folosind instrucţiuni de tip mov
mov ax,cx
mov cx,bx
mov bx,ax
4. Instrucţiunea in al,71h:
a) încarcă în registrul al valoarea 71h
b) citeşte în registrul al un octet de la portul 71h
c) scrie valoarea din registrul al la portul 71h
5. Instrucţiunea out 71h,al
a) încarcă în registrul al valoarea 71h
b) citeşte în registrul al un octet de la portul 71h
c) scrie valoarea din registrul al la portul 71h
6. Instrucţiunea adc dest, sursă realizează operaţia:
a) sursă<--dest+ sursă
b) dest<--dest+ sursă
c) dest<--dest+ sursă+carry
d) sursă<--dest+ sursă+carry
7. Instrucţiunea add dest, sursă realizează operaţia:
a) sursă<--dest+ sursă
b) dest<--dest+ sursă
c) sursă<--dest+ sursă+carry
d) dest<--dest+ sursă+carry
Arhitectura Calculatoarelor

8. Instrucţiunea sub dest, sursă realizează operaţia:


a) sursă<--dest+ sursă
b) dest<--dest- sursă
c) dest<--dest+ sursă
d) sursă<--dest- sursă
9. Instrucţiunea sbb dest, sursă realizează operaţia:
a) sursă<--dest- sursă
b) dest<--dest- sursă
c) dest<--dest- sursă+carry
d) dest<--dest- sursă-carry
10. Instrucţiunea cmp dest, sursă realizează operaţia:
a) compara operanzii sursă si destinaţie prin aplicarea funcției logice "si"
b) compara operanzii sursă si destinaţie prin aplicarea funcției logice "sau"
c) compara operanzii sursă si destinaţie prin scădere.
11. Care este sintaxa corectă a Instrucţiunii dec?
a) dec dest, sursă
b) dec dest
c) dec
12. Care este sintaxa corectă a Instrucţiunii not?
a) not dest, sursă
b) not dest
c) not
13. Dacă în registrul AL este stocată valoarea 11001001, după Instrucţiunea shl al,3 se va obţine:
a) 00011001
b) 01001000
c) 00100100
d)11001000
14. Dacă în registrul AL este stocată valoarea 11001001, după Instrucţiunea shr al,3 se va obţine:

a) 00011001
b) 01001000
c) 00010010
d)11001000
15. Dacă în registrul AL este stocată valoarea 11001001, după Instrucţiunea rol al,3 se va obține:

a) 01001010
b) 01001110
c) 00111001
d)11001000
16. Dacă în registrul AL este stocată valoarea 11001001, după Instrucţiunea ror al,3 se va obține:

a) 01001010
b) 01001110
c) 00111001
d)11001000
17. Dacă în val este stocată valoarea 0F000h, iar în registrul AX - 0F000h, după Instrucţiunea
shld val,ax,4 în val se va obține:
Arhitectura Calculatoarelor

a)
b)
c)
d)

0FF00h
00FFh
0F00Fh
000Fh

18. Dacă în val este stocată valoarea 0F000h, iar în registrul AX - 0F000h, după Instrucţiunea
shrd val,ax,4 în val se va obține:

a)
b)
c)
d)

0FF00h
00FFh
0F00h
0F0Fh

19. Care este starea indicatorului carry după Instrucţiunea 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ă Instrucţiunea 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 instrucțiunii and al,0fh se obține valoarea:
a) 11011111
Arhitectura Calculatoarelor

b) 00001110
c) 11010001
22. Dacă în AL avem 11011110, în urma instrucțiunii or al,0fh se obține valoarea:
a) 11011111
b) 00001110
c) 11010000
23. Dacă în AL avem 11011110, în urma instrucțiunii test al,0fh se obține valoarea:
a) 11011111
b) 00001110
c) 11010001
d) 11011110
24. La instrucţiunile pentru manipularea şirurilor:
a) şirul sursă este pointat de ESI
b) şirul destinaţie e pointat de ESI
c) şirul sursă e pointat de EDI
d) şirul destinaţie e pointat de EDI
25. Se poate seta sensul de parcurgerea şirurilor de caractere?
a) Da
b) nu
c) uneori

26. Contorul pentru instrucţiunile cu şiruri se află în registrul:


a) AX
b) BX
c) CX
d) DX
27. Ce operaţie realizează Instrucţiunea MOVSB?
MOVSB(Move(copy)bytes)
Transfer pe 8 biţi, 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 ESI←ESI+1;
EDI←EDI+1 (decrementare pentru DF=1).
28. Ce operaţie realizează Instrucţiunea CMPSB?
CMPSB(compare bytes)
Comparare pe 8 biţi, 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 ESI←ESI+1;
EDI←EDI+1 (decrementare pentru DF=1).

29. Ce operaţie realizează Instrucţiunea SCASB?


SCASB(SCAS- scan a string)
Instrucţiunile compară valoarea din AL/AX/EAX cu byte, din zona de memorie indicată de EDI.
Instrucţiunile sunt utile la căutarea unui singur element într-un şir.
30. Ce operaţie realizează Instrucţiunea LODSB?
LODSB(LODS- load accumulator from string)
Instrucţiunile încarcă valoarea din byte, din memorie idicat de ESI, în AL/AX/EAX respectiv.
Instrucţiunile sunt utile la căutarea unui singur element într-un şir.
31. Ce operaţie realizează Instrucţiunea STOSB?
STOSB(STOS-store string data)
Arhitectura Calculatoarelor

Instrucţiunile î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. Instrucţiunea jmp et realizează:
a) un salt necondiţionat la et
b) un salt condiţionat la et
c) apelul rutinei et
33. Ce operaţii se realizează la execuţia instrucțiunii CALL?
Apel de procedura. Poate apărea 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 operaţii se realizează la execuţia instrucțiunii RET?


Forma generală:
RET [n]
unde n este o constantă întreagă opțională.
Dacă instrucțiunea RET este de tip NEAR semnificația sa este:
[IP] SS: [[SP] + 1:
[SP]]
[SP] [SP] + 2
[[SP] [SP] + n]
adică se reface (IP) prin copierea conținutului vârfului stivei şi incrementarea cu 2 a lui (SP). Dacă în
instrucțiunea RET apare şi constanta n atunci această constantă se adună la (SP), adică se descarcă
stiva.

35. Instrucţiunea 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. Instrucţiunea 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. Instrucţiunea 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. Instrucţiunea 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. Instrucţiunea 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. Instrucţiunea corespunzătoare etichetei et din LOOP et se află:
a) înaintea instrucțiunii LOOP
b) după Instrucţiunea LOOP
c) nu se afla în programul respectiv
41. Instrucţiunea STC:
a) activează sistemul de întreruperi
b) dezactivează sistemul de întreruperi
c) pune carry pe 0
d) pune carry pe 1

42. Instrucţiunea 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
punctuație ş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 biți (128 combinații 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 octeți ce cuprind codurile caracterelor
respective. De exemplu șirul de caractere “Aa4+b” se reprezintă pe 5 octeți ce vor conține 41 61 34
2B 42h.
45. Cum sunt reprezentate numerele reale:
a) în mărime şi semn
b) în format BCD
c) în format virgula mobila