| a) |
procedura care utilizeaza transmiterea prin variabile globale a parametrilor este:
expresie PROC NEAR
MOV AX,a
ADD AX,b
ADD AX,c
ADD AX,d
SUB AX,f
SUB AX,g
ENDP
|
| b) |
procedura care utilizeaza transmiterea prin variabile globale a parametrilor este:
expresie PROC NEAR
MOV AX,a
ADD AX,b
ADD AX,c
ADD AX,d
SUB AX,f
SUB AX,g
RET
ENDP
|
| c) |
procedura care utilizeaza transmiterea prin variabile globale a parametrilor este:
expresie PROC NEAR
MOV AX,a
ADD AX,b
ADD AX,c
ADD AX,d
SUB AX,f
SUB AX,g
MOV e,AX
RET
ENDP
|
| d) |
procedura care utilizeaza transmiterea prin variabile globale a parametrilor este:
expresie PROC NEAR
MOV AX,a
ADD AX,b
ADD AX,c
ADD AX,d
SUB AX,f
SUB AX,g
MOV e,AX
ENDP
|
| e) |
|
procedura care utilizeaza transmiterea prin variabile globale a parametrilor este:
| a) |
expr PROC NEAR
SUB AX,BX
SUB AX,CX
SUB AX,DX
SUB AX,SI
SUB AX,DI
RET
ENDP
|
| b) |
expr PROC NEAR
SUB AX,BX
SUB AX,CX
SUB AX,DX
RET
ENDP
care se apeleaza de doua ori, calculand mai intai e:=a-b-c-b si dupa aceea
e:=e-f
|
| c) |
expr PROC NEAR
SUB AX,BX
SUB AX,CX
SUB AX,DX
RET
ENDP
care se apeleaza de doua ori, calculand mai intai e:=a-b-c-b si dupa aceea
e:=e-f-0
|
| d) |
imposibil de realizat numai cu registri de lucru AX, BX, CX, DX |
| e) |
expr PROC NEAR
PUSH AX
SUB AX,BX
SUB AX,CX
SUB AX,DX
POP AX
RET
ENDP
care se apeleaza de doua ori, calculand mai intai e:=a-b-c-b si dupa aceea
e:=e-f-0
|
| 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
|
| a) |
MOV AX,ofset e
PUSH AX
MOV AX,ofset d
PUSH AX
MOV AX,ofset c
PUSH AX
MOV AX,ofset b
PUSH AX
MOV AX,ofset a
PUSH AX
daca se doreste evaluarea expresiei de la stanga la dreapta
|
| b) |
MOV AX,ofset a
PUSH AX
MOV AX,ofset b
PUSH AX
MOV AX,ofset c
PUSH AX
MOV AX,ofset d
PUSH AX
MOV AX,ofset e
PUSH AX
daca se doreste evaluarea expresiei de la dreapta spre stanga
|
| c) |
in care toti parametri sunt stocati pe stiva cu instructiunile
MOV reg,offset parametru
PUSH reg
este foarte important sa existe harta stivei pentru a referi corect parametri intrucat ordinea de punere in stiva este aleasa de programator |
| d) |
MOV AX,ofset a
PUSH AX
MOV BX,ofset b
PUSH BX
MOV CX,ofset c
PUSH CX
MOV DX,ofset d
PUSH DX
MOV SX,ofset e
PUSH SX
MOV DI,offset e
PUSH DI
|
| e) |
MOV AX,ofset a
MOV BX,ofset b
MOV CX,ofset c
MOV DX,ofset d
MOV AX,ofset e
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH AX
separand instructiunile de incarcare a adreselor de cele de salvare pe stiva
|
| a) |
evaluare MACRO x,a,b,e
LABEL zero,negativ,eval
MOV AX,x
CMP AX,0
JZ zero
JL negativ
MOV AX,a
ADD AX,b
JMP eval
zero:
MOV AX,0
JMP eval
MOV AX,a
SUB AX,b
eval:
MOV e,AX
ENDM
|
| b) |
evaluare MACRO x,a,b,e
LABEL zero,negativ,eval
MOV AX,a
CMP x,0
JZ zero
JL negativ
ADD AX,b
JMP eval
zero:
XOR AX,AX
JMP eval
negativ:
SUB AX,b
eval:
MOV e,AX
ENDM
|
| c) |
evaluare MACRO x,a,b,e
LABEL zero,negativ,eval
MOV AX,x
CMP AX,0
JZ zero
JL negativ
MOV AX,a
ADD AX,b
JMP eval
zero:
MOV AX,0
JMP eval
MOV AX,a
SUB AX,b
eval:
MOV e,AX
ENDM
|
| d) |
evaluare MACRO x,a,b,e
LABEL zero,negativ,eval
PUSH AX
PUSH BX
MOV AX,x
CMP AX,0
JZ zero
JL negativ
MOV AX,a
ADD AX,b
JMP eval
zero:
MOV AX,0
JMP eval
MOV AX,a
SUB AX,b
eval:
MOV e,AX
POP BX
POP AX
ENDM
|
| e) |
evaluare MACRO x,a,b,e
LABEL zero,negativ,eval
PUSH AX
PUSH BX
MOV AX,x
CMP AX,0
JZ zero
JL negativ
MOV AX,a
ADD AX,b
JMP eval
zero:
MOV AX,0
JMP eval
MOV AX,a
SUB AX,b
eval:
MOV e,AX
POP AX
POP BX
ENDM
|
| 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 |
| 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 |
| a) |
este o macrodefinitie imbricata unde aduna2 z,w,t este o macroapelul care evalueaza ecpresia t:=z+w |
| b) |
utilizeaza doua macrodefinitii testate in prealabil si anume:
aduna2 MACRO a,b,rez
MOV AX,a
ADD AX,b
MOV rez,AX
ENDM
pentru efectuarea dunarii,
macrodefinitia pentru compararea a doua numere a si b unde rezultatul este rez='+' daca a>b, rez='-' daca a
macrodefinitia aduna2 cu un parametru cu semnul minus pentru a efectua scaderea |
| c) |
utilizeaza atat mqacroapeluri cat si instructiuni proprii |
| d) |
se bazeaza pe macroapelul a doua macrodefinitii; este necesar sa se introduca o a treia scade2 a,b,e pentru a inlocui constructia aduna2 a,-b,e |
| e) |
necesita reconsiderarea macrodefinitiei de comparare care este prea generala si introducerea unei instructiuni NEG pentru schimbarea semnului variabilei b in vederea scaderii...prin adunare |
| a) |
>
evaluare MACRO a,b,x,e, stare
LABEL pozitiv,salt
CMP x,0
JG pozitiv
scade2 a,b,e
JMP salt
aduna2 a,b,e
salt:
MOV stare,0
ENDM
|
| b) |
>
evaluare MACRO a,b,x,e
LABEL pozitiv,salt
CMP x,0
JG pozitiv
scade2 a,b,e
JMP salt
aduna2 a,b,e
salt:
XOR CX,CX
ENDM
|
| c) |
>
evaluare MACRO a,b,x,e
LABEL pozitiv,salt
CMP x,0
JG pozitiv
scade2 a,b,e
JMP salt
aduna2 a,b,e
salt:
NOP
ENDM
|
| d) |
>
evaluare MACRO a,b,x,e
LABEL pozitiv,neg_nul,salt
CMP x,0
JLE neg_nul
aduna2 a,b,e
JMP salt
neg_nul:
scade2 a,b,e
salt:
NOP
ENDM
|
| e) |
evaluare MACRO a,b,x,e, stare
LABEL pozitiv,salt
CMP x,0
JG pozitiv
scade2 a,b,e
JMP salt
aduna2 a,b,e
salt:
MOV stare,0
ENDM
|