:
print "
";

ASM testul 015



1.

Care este instructiunea care lipseste din macroinstructiunea pentru adunarea primului element dintr-un sir cu ultimil elemnt din alt sir, pentru adunarea celui de al doilea element cu penultimul si tot asa, adica w[i]:=x[i]+y[n-i+1]:
aduna MACRO x,y,w,n
LABEL ciclu
PUSH SI
PUSH DI
PUSH CX
PUSH AX
MOV CX,n
MOV DI,CX
DEC DI
SHL DI,1
XOR AX,AX
ciclu:
MOV AL,x[SI]
ADD AL,y[DI]
inc SI
DEC DI
LOOP ciclu POP AX
POP CX
POP DI
POP SI
ENDM
daca sirurile sunt definite prin:
x DB 1,2,3,4,5,6,7,8,9,10,11
y DB 13,4,55,31,76,81,0,3,13,5,63
w DB (y-x) DUP(?)
n DW (y-x)
Instructiunea care lipseste este:
MOV w[SI],AL

2.

Instructiunea care inlocuieste
.........xxxx........
din secventa:
.........xxxx........
add AX,a
add AX,b
add AX,c
este cel mai probabil:
a) xor AX,AX
b) sub AX,AX
c) mov AX,0
d) and AX,0000h
e) mov AX,BX pentru ca BX a fost deja initializat

3.

Pentru ca secventa:
XOR SI,SI
MOV DI,SI
XOR AX,AX
MOV CX,n
ciclu: MOV AX,x[SI]
ADD AX,y[DI]
ADD SI,2
ADD DI,2
LOOP ciclu
MOV z[SI]
sa construiasca vectorul z[i]=x[i+1]+y[i], i=1,2,3,...,n trebuie efectuate urmatoarele modificari:

4.

Instructiunea care lipseste din macrodefinitia:
imparte MACRO deimpartit,impartitor,cat
MOV AL,deimpartit
MOV BL,impartitor
DIV BL
MOV cat,AL
ENDM
Este:
a)CMP pentru a vedea daca impartitorul este zero
b)XOR AH,AH
c) conversia
d)CVBW
e)MOV rest,AH



5.

Instructiunile care trebuie modificate atunci cand se construieste vectorul z[i]=x[i]+y[i], i=1,2,3,...,n sunt:
XOR SI,SI
XOR DI,DI
XOR AX,AX
MOV CX,n
ciclu: MOV AX,x[SI]
ADD AX,y[DI]
ADD SI,2
ADD DI,2
MOV z[SI],AX
LOOP ciclu
sunt:
a)niciuna
b)eliminarea instructiunii XOR AX,AX
c)utilizarea numai a unui singur registru index
d)XOR SI,SI
XOR DI,DI se elimina pentru ca se foloseste un singur registru index
XOR AX,AX
MOV CX,n
ciclu: MOV AX,x[SI]
ADD AX,y[DI] se scrie ADD AX,y[SI]
ADD SI,2
ADD DI,2 se elimina
MOV z[SI],AX
LOOP ciclu

6.

Secventa:
XOR SI,SI
XOR DI,DI
XOR AX,AX
MOV CX,n
ciclu: MOV AX,x[SI]
ADD AX,y[DI]
ADD SI,2
ADD DI,2
LOOP ciclu
MOV z[SI]
nu construieste vectorul z[i]=x[i]+y[i], i=1,2,3,...,n pentru ca:

7.

Instructiunea

8.

Secventa cea mai potrivita pentru evaluarea expresiei:
e:=a+x/2+y/4+z/8
este:
a)IDIV
b)DIV
c)ADD
d)SHR
e)ROR


9.

Secveta:
INC AX
INC BX
INC CX
INC DX
INC AL
INC AH
DEC AX
DEC BX
DEC CX
DEC DX
este echivalenta cu secventa:
a) XOR AX,AX
INC AL
INC AH
b) XOR SI,SI
INC AL
INC AH
c) XOR AX,AX
INC AL
INC AH
d)a) INC AL
INC AH
e) XOR AX,AX
INC AH
INC AH

10.

Instructiunea care lipseste din macrodefinitia:
imparte MACRO deimpartit,impartitor,cat
MOV AX,deimpartit
MOV BX,impartitor
DIV BX
MOV cat,AX
ENDM
Este:
a)CMP pentru a vedea daca impartitorul este zero
b)XOR DX,DX
c) conversia
d)CVWD
e)MOV rest,DX

11.

Secventa:
XOR SI,SI
MOV DI,SI
XOR AX,AX
MOV CX,n
ciclu: MOV AX,x[SI]
ADD AX,y[DI]
ADD DI,2
LOOP ciclu
MOV z[SI]
nu construieste vectorul z[i]=x[i]+y[i], i=1,2,3,...,n pentru ca:
a)utilizeaza doi registri index
b)initializeaza cu MOV in loc de XOR registrul DI
c) registrul SI nu este incrementat
d) nu se contorizeaza numarul de repetari
e)se evalueaza de fapt z[i]:=x[0]+y[DI]



12.

Instructiunea

13.

Instructiunea care inlocuieste
.........xxxx........
din secventa:
.........xxxx........
add AX,a
sub AX,b[SI]
sub AX,c[DI]
este cel mai probabil:
a) xor AX,AX
b) sub AX,AX
c) mov AX,0
d) and AX,0000h
e) mov AX,BX pentru ca BX a fost deja initializat



14.

Daca:
n DW 10
x DW 10 DUP (14,3,21,1)
..............
MOV SI,6
MOV AX,x[SI]
instructiunea :
ADD AX,n+10
determina ca in registrul AX sa se gaseasca dudupa executie:
a)21
b)11
c)14
d)x[SI] cu SI==6 inseamna 1, n+10 inseamna 20 deci rezultatul este 11
e) n+10 corespunde lui x[4] care are valoarea 14;
x[SI] pentru SI incarcat cu valoarea 6 corespunde lui x[3]care are valoarea
1; inseamna ca registrul AX are dupa executia secventei valoarea 15

15.

Daca:
n DW 8
x DW 20 DUP (41,32,21)
..............
MOV SI,x+8
MOV AX,x+4[SI]
instructiunea :
ADD AX,n+6
determina ca in registrul AX sa se gaseasca dudupa executie:
a)73
b)82
c)53
d)x+8 corespunde componentei x[4] a masivului unidimensional x[], componenta cu valoarea 32;
registrul SI se incarca cu valoarea 32
expresia x+4[SI] refera elementul cu deplasare 36, adica elementul x[18] care are valoarea 41
registru AX va fi initializat cu aceasta valoare;
expresia n+6 refera elemntul x[2] care are valoarea 21;
rezulta ca dupa efectuarea adunarii registrul AX are valoarea 62
e)64



16.

Instructiunile care inlocuiesc
.........xxxx........
din secventa:
.........xxxx........
add AX,a
sub AX,b[SI]
sub AX,c[DI]
sunt cel mai probabil:
a) xor AX,AX
XOR SI,DI
XOR DI,DI
b) sub AX,AX
SUB SI,SI
SUB DI,DI
c) mov AX,0
mov DI,0
mov SI,0
d) and AX,0000h
and SI,0000h
and DI,0000h
e) mov AX,BX pentru ca BX a fost deja initializat



17.

Instructiunea care lipseste din secventa:
aduna MACRO x,n,suma
LABEL ciclu
XOR AX,AX
XOR SI,SI
ciclu:
ADD AX,x[SI]
ADD SI,2
LOOP ciclu
MOV suma,AX este:
a) INC SI
b) MOV CS,n
c) MOV CX,n
d) DEC CX
e) ADD CX,n daca s-a executat in prealabil XOR CX,CX

18.

Instructiunea x DW 15 DUP(?):
a) aloca o zona de memorie
b)defineste un vector
c) aloca fara initializare 30 de baiti
d)este echivalenta cu secventa:
x DW 10 DUP(?)
DB 10 DUP(?)
e)defineste o structura omogena care este utilizata in instructiuni ce apartin structurii repetitive implementate cu LOOP

19.

Instructiunea ADD SI,4
se inlocuieste cu:
a)ADD SI,ratia ; ratia este definita DW initializata cu 4
b)ADD SI,TYPE var ; pentru a obtine lungimea unui element din variabila var
c) ADD SI,SIZE var ; pentru a obtine elementul din variabila
d)INC SI
INC SI
INC SI
INC SI
e)ADD SI,2
ADD SI,2

20.

Instructiunea care lipseste din macrodefinitia pentru evaluarea expresiei w[i]:=x[i]+y[n-i+1], i=1,2,3,4,...,n formata din secventa de instructiuni :
aduna MACRO x,y,w,n
LABEL ciclu
PUSH SI
PUSH DI
PUSH CX
PUSH AX
MOV CX,n
MOV DI,CX
DEC DI
SHL DI,1
XOR AX,AX
ciclu:
MOV AX,x[SI]
ADD AX,y[DI]
MOV x[SI],AX inc SI
INC SI
DEC DI
DEC DI
LOOP ciclu POP AX
POP CX
POP DI
POP SI
ENDM
daca sirurile sunt definite prin:
x DW 1,2,3,4,5,6,7,8,9,10,11
y DW 13,4,55,31,76,81,0,3,13,5,63
w DW (y-x) DUP(?)
n DW (y-x)
este
SHL DI,1 ce urmeaza imediat instructiunii de decrementare a registrului DI



21.

Instructiunea CVBW
a) converteste
b) executa numai o extensie de semn
c) converteste continutul unei zone de memorie de 1 bait la o zona de memorie de 2 baiti
d) opereaza pe registrul AX
e) este o instructiune pe un bait care face conversia baitului la cuvant

22.

Instructiunea care trebuie inlocuita in secventa:
aduna MACRO x,n,suma
LABEL ciclu
XOR AX,AX
XOR SI,SI
MOV CX,n
ciclu:
ADD AX,x[SI]
ADD SI,2
LOOP ciclu
MOV AX,suma
este:
a) ADD SI,2 cu INC SI si INC SI
b) MOV CS,n
c) MOV suma,AX
d) DEC CX
e) ADD CX,n daca s-a executat in prealabil XOR CX,CX


23.

Secventa cea mai potrivita pentru evaluarea expresiei:
e:=a+2*x+4*y+8*z
este:
a)IMUL
b)MUL
c)ADD
d)SHL
e)ROL

24.

Macrodefinitiei:
initZero MACRO
mov AX,0
mov BX,0
mov CX,0
mov DX,0
ENDM obligatoriu trebuie sa-i corespunda:
a) macrodefinitia:
initZero MACRO
mov DX,0
mov CX,0
mov BX,0
mov AX,0
ENDM b)un macroapel
c) o alta macrodefinitie de forma:
initReg MACRO val
mov AX,val
mov BX,AX
mov CX,AX
mov DX,AX
ENDM
c) macrodefinitia mult mai performanta:
initZero MACRO
xor AX,AX
xor BX,BX
xor CX,CX
xor DX,DX
ENDM
d)macrodefinitia mult mai performanta:
initReg MACRO val
xor AX,AX
xor BX,BX
xor CX,CX
xor DX,DX
ENDM
e)o macrodefinitie care sa salveze registri inainte de a-i initializa cu zero

25.

Macrodefinitia:
divide MACRO deim,imp,cat,rest,vb
PUSH AX
PUSH BX
PUSH DX
MOV AX,deim
MOV BX,imp
DIV BX
MOV rest,DX
MOV cat,AX
xor vb,vb
ENDM
a) realizeaza impartirea a doua numere
b)imparte doua numere si gestioneaza catul, restul si o variabila de stare
c)nu este o macrodefinitie
d) este un macroapel
e)ca sa fie o macrodefinitie mai sunt cecesare cel mult 42 de linii sursa


26.

Macrodefinitia:
divide MACRO deim,imp,cat,rest,vb
PUSH AX
PUSH BX
PUSH DX
PUSH CX
XOR CX,CX
XOR SI,SI
MOV AX,deim
MOV BX,imp
CMP AX,SI
JZ alfa_1
DIV BX
CMP BX,SI
JZ alfa_2
CVWD
DIV BX
MOV cat,AX
MOV rest,DX
JMP alfa_3
alfa_1: INC SI
alfa_2:
INC SI
INC SI
alfa_3: MOV vb,SI
POP CX
POP DX
POP BX
POP AX
ENDM
a) realizeaza impartirea a doua numere
b)imparte doua numere si gestioneaza catul, restul si o variabila de stare
c)utilizeaza incorect registrul SI
d)permite macroapelul:
divide 0,0,x,y,w
e)efectueaza conversia de la cuvat la dublu cuvant


27.

Macrodefinitia:
divide MACRO deim,imp,cat,rest,vb
PUSH AX
PUSH BX
PUSH DX
PUSH CX
XOR CX,CX
XOR SI,SI
MOV AX,deim
MOV BX,imp
CMP AX,SI
JZ alfa_1
DIV BX
CMP BX,SI
JZ alfa_2
CVWD
DIV BX
MOV cat,AX
MOV rest,DX
JMP alfa_3
alfa_1: INC SI
alfa_2:
INC SI
INC SI
alfa_3: MOV vb,SI
POP CX
POP DX
POP BX
POP AX
ENDM
a) returneaza pentru variabila de stare vb valoriele: zero daca impartirea s-a efectuat corect, 1 daca deimpartitul este nul , 2 daca impartitorul este nul si 3 daca deimartitul este nul si daca impartitorul este nul
b)returneaza pentru variabila de stare vb valoriele: zero daca impartirea s-a efectuat corect, 1 daca numitorul este nul , 2 daca numaratorul este nul si 3 daca ambele sunt nule
c)utilizeaza incorect registrul SI
d)permite macroapelul:
divide 0,0,12,11,w
e)efectueaza conversia de la cuvat la dublu cuvant



28.

Instructiunea INC AX este echivalenta cu:
a) adunarea unei unitati
b) incrementarea registrului AX
c) ADD AX,BX daca si numai daca BX a fost initializat cu 1
d) ADD AX,2
SUB AX,1
e)INC BX
MOV AX,BX

29.

Macrodefinitia:
divide MACRO deim,imp,cat,rest,vb
PUSH AX
PUSH BX
PUSH DX
MOV AX,deim
MOV BX,imp
DIV BX
MOV rest,DX
MOV cat,AX
ADD vb,1
POP DX
POP BX
POP AX
ENDM
a) realizeaza impartirea a doua numere
b)imparte doua numere si gestioneaza catul, restul si o variabila de stare
c)nu este o macrodefinitie
d) este un macroapel
e)ca sa fie o macrodefinitie mai sunt cecesare cel mult 42 de linii sursa


30.

Pentru adunarea primului element dintr-un sir cu ultimil elemnt din alt sir, pentru adunarea celui de al doilea element cu penultimul si tot asa, adica w[i]:=x[i]+y[n-i+1] macrodefinitia este:
aduna MACRO x,y,w,n
LABEL ciclu
PUSH SI
PUSH DI
PUSH CX
PUSH AX
MOV CX,n
MOV DI,CX
DEC DI
SHL DI,1
XOR AX,AX
ciclu:
MOV AX,x[SI]
ADD AX,y[DI]
MOV x[SI],AX inc SI
INC SI
DEC DI
DEC DI
LOOP ciclu POP AX
POP CX
POP DI
POP SI
ENDM
daca sirurile sunt definite prin:
x DW 1,2,3,4,5,6,7,8,9,10,11
y DW 13,4,55,31,76,81,0,3,13,5,63
w DW (y-x) DUP(?)
n DW (y-x)