Académique Documents
Professionnel Documents
Culture Documents
2016
Recapitulare laborator 4
Aplicații practice
Forma generală pentru definirea unei proceduri este:
nume_proc PROC [FAR | NEAR]
……
RET
nume_proc ENDP
Notă:
SHL(Shift Logic- Deplasează logic/aritmetic la stânga)
SHL operand, contor
Bitul cel mai semnificativ trece în CF, după care toţi biţii
se deplasează la stânga cu o poziţie. Bitul cel mai puţin
semnificativ devine 0. Numărul operațiilor este dat de contor.
Instrucţiunea ADC (Add with Carry – Adună cu transport)
ADC dest, sursa ----- dest ← dest + sursa + CF
1. Definim procedura numără de tip near:
nume_procedură proc near;
2. Verificăm daca în registrul AL (valoarea citită de la
tastatură) avem valoarea zero;
3. Daca în registrul AL avem valoarea zero sărim la
sfârșitul procedurii;
4. Siftăm numărul la stanga cu o poziție (SHL);
5. Adunăm cu transport (ADC) valoarea zero intr-o
variabila ‘rezultat’
definită; transportul / CF o sa fie adunat la rezultat.
5. Facem salt la punctul 2;
6. Sfarsit procedură: ret endp
ASCII Decimal Hex
0 48 30
mov AH,01h 2 50 32
int 21h 3 51 33
sub al, 30h ; ‘0’
4 52 34
ret
endp 5 53 35
6 54 36
Pas Instrucțiune
1 AH <- 1h 7 55 37
2 INT 21h 8 56 38
3 AH <- cod ASCII caracter
9 57 39
4 AH – 30h – cifra
Să se scrie o procedură care realizează
adunarea a două valori citite de la tastatură.
Numerele sunt formate din maxim 32 de
cifre.