print "
";

ASM testul 012



1.

Instructiunea
XOR AX,AX
are structura interna 3BC0

2.

Instructiunea
MOV DS,AX
are structura interna 8ED8

3.

Instructiunea
MUL byte ptr[000f]
are structura interna F6260F00

4.

Instructiunea
SUB AL,[0014]
are structura interna 2A061400

5.

Instructiunea
ADD AL,[0012]
are structura interna 02061200

6.

Instructiunea
DIV byte ptr [0011]
are structura interna F6361100

7.

Instructiunea
MOV [0015],AL
are structura interna A21500

8.

Instructiunea
STD
presupune ca pentru definirile:
SURSA DB 'ASDFGHJKLMNBVCXZWERT67120UJNG'
DESTI DB (DESTI-SURSA) DUP (?)
LGG DW DESTI-SURSA
pregatirile in vedera executarii de operatii pe siruri de caractere stiut fiind faptul ca se vor decrementa registri SI si DI sunt:
MOV SI,offset SURSA
MOV DI,offset DESTI
MOV CX,LGG
ADD SI,CX
ADD DI,CX
DEC SI
DEC DI

9.

Instructiunea
STD
presupune ca pentru definirile:
SURSA DW 'ASDFGHJKLMNBVCXZWERT67120UJNGA'
DESTI DW (DESTI-SURSA)/2 DUP (?)
LGG DW (DESTI-SURSA)/2
pregatirile in vedera executarii de operatii pe siruri de caractere stiut fiind faptul ca se vor decrementa registri SI si DI sunt:
MOV SI,offset DESTI-2
MOV DI,offset LGG-2
MOV CX,LGG

10.

Instructiunea
STD
presupune ca pentru definirile:
SURSA DW 'ASDFGHJKLMNBVCXZWERT67120UJNG'
DESTI DW (DESTI-SURSA) DUP (?)
LGG DW DESTI-SURSA
pregatirile in vedera executarii de operatii pe siruri de caractere stiut fiind faptul ca se vor decrementa registri SI si DI sunt:
MOV SI,offset SURSA
MOV DI,offset DESTI
MOV CX,LGG
ADD SI,CX
ADD DI,CX
DEC SI
DEC DI
DEC SI
DEC DI

11.

Instructiunea
STD
impune traversarea sirului de caractere sursa de la dreapta spre stanga datorita decrementarii registrului SI.

12.

Instructiunea
MOV AH,4Ch
are structura interna B44C

13.

Instructiunea
CLD
detrmina incrementarea cu 2 a registrilor (S) si (DI) la executia instructiunii MOVSW

14.

Instructiunea
CLD
detrmina incrementarea cu 1 a registrilor (S) si (DI) la executia instructiunii MOVSB

15.

Instructiunea
STD
detrmina decrementarea cu 2 a registrilor (S) si (DI) la executia instructiunii MOVSW

16.

Instructiunea
STD
detrmina decrementarea cu 1 a registrilor (S) si (DI) la executia instructiunii MOVSB

17.

Instructiunea
STOSW
memoreaza in registrul AX 2 baiti dintr-un sir vazut ca succesiune de cuvinte

18.

Instructiunile
SURSA DB '123456789abcdef'
DESTI DB 15 DUP (?)
....................
MOV SI,offset SURSA
MOV DI,offset DESTI
MOV CX,LENGTH SURSA ciclu:
MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP ciclu
...............
copiaza bait cu bait continutul elementelor sirului de baiti SURSA in vectorul DESTI

19.

Instructiunile
SURSA DW '123456789abcdefg'
DESTI DW 8 DUP (?)
....................
MOV SI,offset SURSA
MOV DI,offset DESTI
MOV CX,LENGTH SURSA ciclu:
MOV AX,[SI]
MOV [DI],AX
INC SI
INC DI
INC SI
INC DI
LOOP ciclu
...............
copiaza cuvat cu cuvat continutul elementelor sirului de cuvinte SURSA in vectorul DESTI


20.

Instructiunile
INC SI
INC DI
incrementeaza cu 1 registri SI si DI, fara a mai fi necesare daca se foloseste una din instructiunile MOVSB, LODSB, STOSB, CMPSB.

21.

Instructiunile
REPNE MOVSB
REPNE MOVSW
REPNE LODSB
REPNE LODSW
REPNE STOSB
REPNE STOSW
are codul masina 111001z si controleaza daca registrul CX != 0 sau daca indicatorul de conditie ZF==1 pentru a continua reluarea ciclului de lucru pe sirul de caractere

22.

Secventa de instructiuni:
MOV SI,offset SURSA
MOV DI,offset DESTI
secv:
CLD
et1:
LODSB
CMP AL,0
JE et2
STOSB JMP et1 et2:
STOSB
..............
copiaza bait de bait un sir de caractere avand caracterul '0' delimitator de sfarsit de sir, numit SURSA intr-un alt sir numit DESTI

23.

Pentru copierea unui caracter memorat in variabila CHH definita DB in sirul DESTI de lungime LGG se construieste macrodefinitia:
cpoychar MACRO DESTI,CHH,LGG
PUSH DI
PUSH CX
PUSH AX
MOV DI,offset DESTI
MOV CX,LGG
MOV AL,CHH
REP STOSB
POP AX
POP CX
POP DI
ENDM

24.

Macrodefinitia pentru numararea in variabila CONTOR definita DW aparitiilor unui caracter memorat in variabila CHH definita cu DB in sirul de caractere de lungime LGG numit SURSA este:
numara MACRO SURSA,CHH,LGG,CONTOR
LOCAL et1,et2
PUSH SI
PUSH CX
PUSH AX
PUSH BX MOV CX,LGG
XOR BX,BX
MOV SI,offset SURSA CLD
et1:
LODSB
CMP AL,CHH
JNE et2
INC BX
LOOP et1
MOV CONTOR,BX
POP BX
POP AX
POP CX
POP SI
ENDM

25.

Instructiunea
STD
seteaza pe 1 indicatorul de conditie DF si presupune:
- decrementarea registrilor SI si DI in instructiunile de lucru cu siruri de caractere
- incarcarea de catre programator in redistri SI si DI a adresei de sfarsit a sirurilor cu care se lucreaza.

26.

Instructiunea
STD
presupune ca pentru definirile:
SURSA DB 'ASDFGHJKLMNBVCXZWERT67120UJNG'
DESTI DB (DESTI-SURSA) DUP (?)
LGG DW DESTI-SURSA
pregatirile in vedera executarii de operatii pe siruri de caractere stiut fiind faptul ca se vor decrementa registri SI si DI sunt:
MOV SI,offset DESTI-1
MOV DI,offset LGG-1
MOV CX,LGG

27.

Instructiunile
REPE MOVSB
REPE MOVSW
REPE LODSB
REPE LODSW
REPE STOSB
REPE STOSW
are codul masina 111001z si controleaza daca registrul CX != 0 sau daca indicatorul de conditie ZF==0 pentru a continua reluarea ciclului de lucru pe sirul de caractere


28.

Instructiunile
SURSA DB '123456789abcdef'
DESTI DB '1234567xyabcdef'
....................
MOV SI,offset SURSA
MOV DI,offset DESTI
MOV CX,LENGTH SURSA ciclu:
MOV AL,[SI]
CMP AL,[DI]
JL mai_mic
JG mai_mare
INC SI
INC DI
LOOP ciclu
JMP egal
...............
mai_mic:
.....................
mai_mare:
......................
egal:
.....................
compara bait cu bait continutul elementelor sirului de baiti SURSA in vectorul DESTI

29.

Instructiunile
SURSA DW '123456789abcdef0'
DESTI DW '1234567xyabcdefb'
....................
MOV SI,offset SURSA
MOV DI,offset DESTI
MOV CX,LENGTH SURSA ciclu:
MOV AX,[SI]
CMP AX,[DI]
JL mai_mic
JG mai_mare
INC SI
INC DI
INC SI
INC DI
LOOP ciclu
JMP egal
...............
mai_mic:
.....................
mai_mare:
......................
egal:
.....................
compara cuvant cu cuvant continutul elementelor sirului de cuvinte SURSA in vectorul DESTI


30.

Instructiunile
REP MOVSB
REP MOVSW
REP LODSB
REP LODSW
REP STOSB
REP STOSW
are codul masina 1110011 si controleaza daca registrul CX != 0 pentru a continua reluarea ciclului de lucru pe sirul de caractere