print "
";

ASM testul 009



1.

Instructiunea
MOV AX,A+10
a) copiaza continutul zonei de memorie a carei deplasare este A+10 in registrului AX
b) copiaza zona de memorie de doi baiti A+10 in registrul AX registrul DX ramane nemodificat
c) muta continutul registrului AX in zona de memorie de doi baiti de adresa fizica A+10
d) nu pozitioneaza indicatorii de conditie AF,CF,IF,OF,DF dar pozitioneaza indicatorii PF, SF,TF,ZF
e) copiaza continutul zonei de memorie a carei adresa este in A+10 daca s-ar scrie MOV AX,[A+10] in registrului AX


2.

Instructiunea VAR DW ALFA,BETA,GAMA realizeaza:

a) initializarea zonei de memorie VAR cu valorile operanzilor ALFA, BATA si GAMA
b) alocarea a 6 batiti, cate doi baiti pentru cele trei zone de memorie
c) alocarea a doi baiti pentru variabila ALFA, alocarea a doi baiti pentru variabila BETA
si alocarea a inca doi baiti pentru variabila GAMA pe care ii initializeaza cu adrese
d) definirea unui vector de pointeri cu trei componente pe care il initializeaza
cu deplasarile variabilelor ALFA, BETA si GAMA
e) definirea a trei cuvinte, adica 6 baiti; primul cuvant il initializeaza cu deplasarea variabilei ALFA, al doilea cuvant il initializeaza cu deplasarea variabilei BETA si
ultimul cuvant il initializeaza cu deplasarea variabilei GAMA, fara a pozitiona
indicatori de conditie fiind din aceeasi clasa cu instructiunea MOV

3.

Instructiunile:
POP CX
POP AA
PUSH AA
POP AA[SI]
PUSH AA[SI] POP [SI] PUSH [SI]
a) exemplifica un mod inconsistent de a utiliza stiva, prin operatii care anuleaza una efectul celeilalte
b) definesc o secventa in care registrul SP se incrementeaza de patru ori cu valoarea 2 si se incrementeaza cu 2; operatiile alterneaza
c) extrag de pe stiva si pun pe stiva acelasi continut
d) ia de pe stiva continutul unor zone de memorie definite pe cuvant;
dupa aceea registrul SP se incrementeaza cu 2 la fiecare restaurare;
instructiunea nu pozitioneaza indicati de conditie, dupa aceea pune pe stiva; normal trebuia sa se puna pe stiva cu PUSH si numai dupa aceea sa se faca salvare cu POP
e) preiaude pe stiva patru cuvinte pe care le memoreaza in: registrul CX, in zona de memorie cu nume AA definita cu DW, in zona de memorie cu adresa obtinuta din deplasarea variavilei AA si
continutul registrului SI prin adunare si ultima copiere pune pe stiva din zona de memorie a carei deplasare este memorata in registrul SI; dupa fiecare restaurare se produce o salvare, care prin simetrie anuleaza efectul restaurarii in raport numai cu continutul stivei

4.

Instructiunea NOP:
a) este instructiunea vida definita cu codul 9Ah
b) nu realizeaza nicio prelucrare dar necesita un numar fix de cicluri masina; se eticheteaza obligatoriu
c) ocupa un bait si permite o implementare flexibila a structurii alternative multiple
d) nu pozitioneaza indicatorii de conditie si trebuie sa fie etichetata
e) se executa in 3 cicluri masina, ocupa un bait, nu executa nicio prelucrare si este utilizata numai pentru a delimita secvente fiind obligatorie etichetarea ei


5.

Prin secventa:
ALFA DW 1,2,3,4,5,6,7,8,9,10
BETA DB 1,2,3,4,5,6,7,8,9,10
GAMA DD 1,2,3,4,5,6,7,8,9,10
se realizeaza:
a) alocarea a trei zone de memorie ALFA, BETA, GAMA care ocupa 70 de baiti
b) definirea a trei vectori, fiecare avand cate 10 componente; primul element din fiecare vector se refera folosind numele ALFA sau BETA sau GAMA
c) alocarea si initializarea de zone de memorie care sunt referite prin expresiile ALFA[SI], BETA[SI] si GAMA[SI] ca orice structura omogena
d) defineste in total 30 de componente de vectori care se refera corect folosind obligatoriu adresare indirecta dupa ce a fost initializat registrul SI si incrementat cu 1 pentru vectorul BETA sau
cu 2 pentru vectorul ALFA sau cu 4 pentru vectorul GAMA
e) definirea si initializarea unor termeni ai unor siruri pentru care exista formula de calcul, incalcand in acest fel o cerinta fundamentala a prelucrarii, care spune ca datele pentru care exista formule de calcul nu se stocheaza in memorie, ci se genereaza cu formula ori de cate ori este nevoie


6.

Instructiunea DEC realizeaza:
a) decrementarea registrului specificat ca operand
b) scade o unitate din operandul definit si pozitioneaza indicatorii de conditie AF,OF,PF si ZF
c) ecaluarea expresiei AX:=AX-1 daca este definita prin DEC AX;
necsita 2 cicluri masina;
pozitioneaza indicatorii de conditie AF,OF,PF,SF si ZF
d) decrementarea registrului CX in instructiunea LOOP
e) o prelucrare mai eficienta decat SUB AX,1 care necesita 4, intrucat DEC AX necesita numai 2 cicluri masina; depinde de numarul de baiti ocupati de instructiune


7.

Instructiunea de comparare COMPARE TWO OPERANDS
CPM operand_stanga,operand_dreapta:
a) efectueaza evaluarea expresiei (operand_stanga) - (operand_dreapta) si pozitioneaza indicatorii de conditie AF,CF,OF,PF,SF si ZF
b) nu modifica cei doi operanzi dupa efectuarea compararii
c) compara prin scaderea celor doi operanzi si nu se modifica continutul zonelor lor de memorie
d) efectueaza compareare prin scadere a celor doi operanzi si pozitioneaza indicatorii
de conditie AF,CF,OF,PF,SF,ZF asemeni instructiunii SUB
e) doar pozitioneaza indicatorii de conditie dupa evaluarea expresiei (operand_stang):=(operand_stang)-(operand_drept)


8.

Instructiunea
CPM operand_stanga,operand_dreapta:
a) efectueaza evaluarea expresiei (operand_stanga) - (operand_dreapta) si necesita 3 cicluri masina daca are forma CMP AX,BX;
pozitioneaza toti indicatorii de conditie
b) nu modifica cei doi operanzi daca are forma CMP 7,10, dupa efectuarea compararii
c) compara prin scaderea operanzii AX si BETA din instructiunea CMP AX,BETA,
unde AX este operand_drept si BETA este operand_stang; nu se modifica continutul celor doi operanzi
d) efectueaza compareare prin scadere a celor doi operanzi si necesita 4 cicluri masina daca operand_stang este imediat; pozitioneaza indicatorii de conditie AF,CF,OF,PF,SF,ZF
e) doar pozitioneaza indicatorii de conditie dupa evaluarea expresiei (operand_stang):=(operand_stang)-(operand_drept), fara a modifica niciun operand daca acestia sunt de tip registru


9.

Instructiunea de comparare COMPARE TWO OPERANDS
CPM :
a) efectueaza evaluarea expresiei (operand_stanga) - (operand_dreapta) si pozitioneaza indicatorii de conditie AF,CF,OF,PF,SF si ZF
daca operandul sursa este definit pe 2 baiti si operandul destinatie este definit pe 1 bait
b) nu modifica continutul operanzilor 212 si 333 din instructiunea CMP 212,333 doar pozitioneaza indicatorii de conditie
c) compara cei doi operanzi, iar atunci cand operandul stang este definit pe 2 baiti iar operandul drept este definit pe 1 bait are loc extensia de semn a operandului drept pentru a se efectua o scadere intre operanzi de 2 baiti fiecare;
CMP AX,22 se executa in 4 cicluri masina
d) efectueaza compareare prin scadere a doi operanzi stocati in memorie si pozitioneaza indicatorii de conditie AF,CF,OF,PF,SF,ZF
e) doar pozitioneaza indicatorii de conditie dupa evaluarea expresiei (operand_stang):=(operand_stang)-(operand_drept) in care cei doi operanzi se refera si prin expresiile [SI], respectiv, [DI], ca in instructiunea CMP [SI],DI


10.

Secventa :
VECT DW proc1,proc2,proc3,proc4,proc5,proc6,proc7
.............
MOV CX,7
XOR SI,SI
et200:
CALL VECT[SI]
LOOP et200
a) efectueaza apelul procedurilor care se afla in acelasi segment cu programul apelator,ale caror adrese sunt memorate in vectorul VECT
b) modifica in acelasi fel SP si CS indiferent unde se afla procedura
c) initializeaza registrul IP cu cele 7 adrese ale procedurilor
d) efectueaza apelul procedurilor
e) nu pozitioneaza indicatorii de conditie dar executa de 7 ori apelul aceleiasi proceduri pentru ca nu este incrementat registrul index SI cu 2


11.

Instructiunea de apel procedura inter-segment:
CALL sorteaza
a) ocupa 5 baiti dupa cum urmeaza:
primul bait: codul operatiei 10011010b
al doilea bait si al treilea bait: offsetul procedurii
al patrulea bait si al cincilea baita: adresa segmentului
b) nu modifica pozitionarea indicatorilor de conditie si necesita 20 cicluri masina in cazul adresarii directe indexate
c) modifica inaintea efectuarii saltului neconditionat registri SP, CS si IP dupa cum urmeaza:
(SP):=(SP)-2
((SP)+1:(SP)):=(CS)
(CS):=adresaSEGMENT
(SP):=(SP)-2
((SP)+1(SP)):=(IP)
(IP):=adresa(sortarea)
d) efectueaza apelul procedurii sortearea si executa instructiunile acesteia pana la aparitia primei
instructiuni RET; nu pozitioneaza indicatorii de conditie AF,CF,OF,PF,SF,ZF
e) modifica registrul IP in sensul ca la revenirea din procedura asigura introarcerea la instructiunea de dupa CALL


12.

Instructiunea ADD WITH CARRY, ADC dest,sursa
a) afecteaza indicatorul de conditie CF
b) executa evaluarea expresiilor:
(dest):=(dest)+(sursa)+1 daca CF=1
(dest):=(dest)+(sursa)+0 daca CF=0
c) aduna CF la operandul sursa
d) efectueaza adunarea lui CF la registrul acumulator
e) se foloseste numai la adunarea operanzilor definiti pe 4 baiti fiecare ca in secventa:
MOV AX,OPERAND_1
ADD AX,OPERAND_2
MOV DX,OPERAND_1+2
ADC DX,OPERAND_2+2


13.

Instructiunea :
UNITATE DW 1,7 DUP (0,0,0,0,0,0,1)
defineste:
a) fara initializare o matrice unitate
b) cu initializare o matrice unitate cu 7 linii si 7 coloane
c) determina alocarea unei zone de memorie de 49 de cuvinte initializare cu o lista de constante repetata de 7 ori
d) aloca 98 de baiti fara initializare dar care pot fi reinitializati ulterior
e) nu modifica indicatorii de conditie in acelasi fel in care actioneaza instructiunea CALL


14.

Secventa de instructiuni
MOV AX,BETA[SI]
MOV GAMA[SI],AX
realizeaza:
a) copierea elementelor BETA[i]ale unui masiv unidimensional in masivul unidimensional
GAMA[i], i=0,1,2,...,n
b) transferul intre doua zone de memorie
c) muta element cu element doua masive de memorie
d) nu pozitioneaza indicatorii de conditie AF,CF,IF,OF,DF dar pozitioneaza indicatorii PF, SF,TF,ZF
e) copiaza in registrul AX continutul zonei de memorie referite cu adresare indexata
BETA[SI];copiaza in zona de memorie referita prin GAMA[SI] a continutului registrului AX


15.

Secventa de instructiuni:
xor SI,SI
mov cx,100
et10:
MOV X[SI],CX
INC SI
INC SI
LOOP et10
realizeaza:
a) generarea unui sir crescator 1,2,...,n memorat in zona de memorie de 2*n cuvinte
b) initializarea cu valorile 100, 99, 98,.....,4,3,2,1 a elementelor unui masiv unidimensional definit prin X DW 100 DUP (?)
c) muta un sir de screscator intr-un vector de 100 de componente definite cu DW
d) nu pozitioneaza indicatorii de conditie in toate cele 101 repetari
e) copiaza continutul registrului AX in zona de memorie referita prin adresare directa indexata


16.

Instructiunea JZ ALFA realizeaza:
a) pozitionarea de indicatori de conditie
b) un salt conditionat daca indicatorul de conditie ZF a fost setat pe 1
c) modificarea registrului IP pentru a executa instructiunea cu eticheta ALFA
d) nepozitionarea indicatorilor de conditie CF si SF
e) rapid salt conditionat inainte sau inapoi daca numarul cu care se modifica IP este mult mai mic decat + sau - 127


17.

Instructiunea MOV AX,AX realizeaza:
a) copierea continutul registrului AX in el insusi
b) copierea unui operand numit sursa in alt operand numit destinatie
c) initializarea cu zero a registrului AX
d) fara sa pozitioneze indicatorii de conditie AF,CF,IF,OF,DF o operatie nenecesara
e) copiaza continutul registrului AX in zona de memorie de doi baiti AX definita anterior
fara a fi initializata; nu pozitioneaza indicatorii de conditie; continutul zonei
de memorie AX ramane nemodificat


18.

Instructiunea JMP ETA realizeaza:
a) salt neconditionat in avans
b) salt neconditionat inapoi
c) salt neconditionat inainte sau inapoi
d) salt neconditionat la instructiunea cu eticheta ETA si nu pozitioneaza
indicatorii de conditie AF,CF,IF,OF,DF dar pozitioneaza indicatorii PF, SF,TF,ZF
e) salt neconditionat la instructiunea cu eticheta ETA si nu pozitioneaza
indicatorii de conditie AF,CF,IF,OF,DF dar numarul de cicluri masina necesari depinde de:
- distanta de la JMP la instructiunea cu eticheta ETA
- daca JMP si instructiunea ETA se afla in acelasi segment sau in segmente diferite
- daca ETA se refera indirect bazat




19.

Instructiunile:
MOV AX,-1
JLZ ETA
realizeaza:
a) salt conditionat in avans spre instructiunea cu eticheta ETA intrucat registrul AX are valoarea -1
b) salt conditionat inapoi catre instructiunea cu eticheta ETA pentru ca registrul AX are valoarea -1
c) salt conditionat catre instructiunea cu eticheta ETA numai daca o instructiune precedenta pozitioneaza indicatorii de consditie ceruti de acest tip de salt;
instructiunea MOV nu pozitioneaza indicatorii de conditie
d) salt conditionat la instructiunea cu eticheta ETA si nu pozitioneaza
indicatorii de conditie AF,CF,IF,OF,DF dar pozitioneaza indicatorul SF
e) salt conditionat la instructiunea cu eticheta ETA si nu pozitioneaza
indicatorii de conditie insa implementeaza structura repetitiva conditionata anterior




20.

Instructiunea JMP ETA,TETA realizeaza:
a) salt neconditionat in avans la instructiunea cu eticheta ETA daca registrul CX are valoarea 0 sau la instructiunea cu eticheta TETA daca registrul CX are valoarea 1
b) salt neconditionat inapoi la instructiunea cu eticheta ETA
c) salt neconditionat inainte la instructiunea cu eticheta ETA sau inapoi la instructiunea cu eticheta TETA
d) nu este o constructie sintactic corecta intrucat instructiunile de salt au un singur element in lista de operanzi
e) salt neconditionat bidirectional




21.

Instructiunea SUB ETA,TETA realizeaza:
a) scaderea operandului sursa TETA din operandul destinatie ETA, definiti prin:
ETA DW 100
TETA DW 75
obtinand valoarea 25
b) efectuarea scaderii dupa relatia (ETA):=(ETA)-(TETA)
c) generarea unei erori de executie intrucat ambii operanzi sunt variabile definite in memorie
d) scaderea daca unul dintre operanzi este pus in corespondenta cu unul dintre registri AX sau BX sau CX sau DX sau DI sau SI folosind EQU
e) scaderea a doi operanzi definiti implicit pe un bait fiecare




22.

Instructiunea DEC CX realizeaza:
a) scaderea unei unitati din registrul CX
b) scaderea a doua unitati din registrul CX daca precede instructiunea LOOP
c) scaderea a trei unitati din registrul CX daca este inlocuita de instructiunea SUB CX,3
d) pozitionarea unor indicatori de conditie
e) o operatie de scadere cu o cantitate fixa, numita ratie




23.

Registrul AX se utilizeaza pentru:
a) stocarea de rezultate intermediare ca in instructiunea ADD AX,X[SI]
b) memorarea de constante simbolice in exclusivitate
c) initializare numai cu instructiunea XOR AX,AX
d) furnizare ca sursa de valori care se memoreaza ca in instructiunea MOV ALFA,AX
e) comparare de valori ca in instructiunea CMP AX,7 sau CMP 7,AX




24.

Registrul AX se utilizeaza pentru:
a) ajustare aritmetica, fiind operand explicit
b) conversie de la bait la cuvant, ca operand explicit
c) conversie de la cuvant la cuvant dublu, ca operand explicit, impreuna cu registrul DX
d) calcule ca registru acumulator
e) comparare de valori ca in instructiunea CMP AX,7 sau CMP 7,AX


25.

Registrul CX se utilizeaza pentru:
a) stocarea de rezultate intermediare ca in instructiunea ADD CX,X[SI]
b) memorarea de constante care indica numarul mai mare ca 10 a pozitiilor cu care se efectueaza deplasarea spre stanga sau spre dreapta a continutului unei zone de memorie sau a continutului unui registru
c) gestionarea sub forma DEC CX a numarului de repetari in structura repetitiva implementata cu instructiunea LOOP
d) stabilirea lungimilor diferite ale sirurilor de baiti utilizate in instructiunile de lucru cu siruri de caractere
e) comparare de valori ca in instructiunea CMP CX,7 sau CMP 7,CX




26.

Instructiunea MUL ETA realizeaza:
a) inmultirea unui operand stocat intr-un registru cu operandul stocat in memorie si referit cu identificatorul ETA
b) inmultirea atunci cand deinmultitul se afla in registrul AX si inmultitorul se afla in zona de memorie definita pe cuvant ETA
c) inmultirea numai daca deinmultitul este memorat in registrul AX si inmultitorul se memoreaza
in registrul BX prin instructiunea MOV BX, ETA, dupa care instructiunea de inmultire devine MUL BX
d) inmultirea binara a doi operanzi, din care unul este stocat intr-un registru si altul este in memorie;
rezultatul se afla in registrul dublu DX:AX
e) calculul unei expresii de forma (DX:AX):=(AX)*(ETA)
nu se pozitioneaza indicatori de conditie




27.

Instructiunile:
JG ETA_1
JZ ETA_2
JL ETA_3
JMP ETA_4
realizeaza:
a) salt conditionat spre trei directii diferite
b) salt neconditionat spre eticheta ETA_4 si trei salturi conditionate
c) filtrarea executiei a patru secvente de program functie de trezultatul testarii
d) salturi conditionate functie de cum au fost pozitionati indicatorii de conditie anterior;
instructiunea JMP ETA_4 trebuie etichetata, altfel nu va fi executata niciodata
e) salturi neconditionate si conditionate spre 4 secvente de program




28.

Instructiunea PUSH ETA realizeaza:
a) salvarea pe stiva a continutului unui cuvant referit cu identificatorul ETA
b) salvarea pe o stiva referita cu registrul SS
c) copierea continutului zonei de memorie referita cu identificatorul ETA in zona de memorie avand deplasarea referita cu registrul SP, dupa ce registrul acesta a fost majorat cu 2
d) copierea continutului zonei de memorie referita cu identificatorul ETA in zona de memorie avand deplasarea referita cu registrul SP, dupa ce registrul acesta a fost diminuat cu 2
e) este echivalenta cu instructiunea MOV [SP],ETA


29.

Instructiunea MOV AX,offset BETA realizeaza:
a) incarca in registrul AX deplasarea zonei de memorie BETA
b) nu pozitioneaza indicatori de conditie dar este singurul mod de a incarca adresa unui operand
c) muta continutul zonei de memorie BETA in registrul AX
d) nu pozitioneaza indicatorii de conditie dar incarca in registrul AX o deplasare, registrul AX fiind utilizat in adresarea indexata
e) incarcarea in registrul AX a unei deplasari, fiind obligatorie instructiunea MOV SI,AX pentru a lucra in continuare in modul de adresare indirect cu operandul BETA




30.

Instructiunea MOV DI,offset BETA realizeaza:
a) incarca in registrul DI deplasarea zonei de memorie BETA
b) nu pozitioneaza indicatori de conditie dar este singurul mod de a incarca adresa unui operand
c) muta continutul zonei de memorie BETA in registrul DI
d) nu pozitioneaza indicatorii de conditie dar incarca in registrul AX o deplasare, registrul DI fiind utilizat in adresarea indexata
e) incarcarea in registrul DI a unei deplasari, fiind obligatorie instructiunea MOV AX,[DI] pentru a lucra in continuare in modul de adresare indirect cu operandul BETA, iar registrul DI trebuie incrementat prin:
INC DI
INC DI