Sunteți pe pagina 1din 2

5.

RECAPITULARE I EXERCIII
5.1 Exerciii
5.1.1 Exerciiul 1
Cerin: Scriei un subprogram care s primeasc dou numere de 16 bii, fr semn ca
parametri de intrare (transmii prin intermediul stivei) i s returneze maximul celor dou
numere (prin intermediul registrului AX). Exemplificai modul de utilizare al subprogramului
ntr-un program care compar trei numere de 16 bii, fr semn definite n program ca variabile
de tip word (i denumite alpha, beta i gamma) n vederea gsirii maximului lor.
Indicaie: programul principal va apela subprogramul de dou ori: prima dat va compara
numerele alpha i beta, apoi va compara maximul dintre alpha i beta cu numrul gamma.
5.1.2 Exerciiul 2
Cerin: Scriei un subprogram care s primeasc patru numere de 16 bii, fr semn ca
parametri de intrare (transmii prin intermediul stivei) i s returneze rezultatul urmtoarei
funcii aritmetice (n registrul DX concatenat cu registrul AX):
(parametrul1 parametrul2) * (parametrul3 parametrul4)
Exemplificai modul de utilizare al subprogramului ntr-un program care-l apeleaz,
transmind ca parametri de intrare patru numere oarecare, i stocheaz rezultatul n memorie
ntr-o variabil denumit result.
5.1.3 Exerciiul 3
Cerin: Scriei un subprogram care s primeasc patru numere de 8 bii, cu semn ca parametri
de intrare (transmii prin intermediul stivei) i s returneze rezultatul urmtoarei funcii logice
(n registrul AX):
NOT ((parametrul1 << 2 XOR parametrul2) AND (parametrul3 << 2 XOR parametrul4))
Exemplificai modul de utilizare al subprogramului ntr-un program care-l apeleaz,
transmind ca parametri de intrare patru numere oarecare, i stocheaz rezultatul n memorie
ntr-o variabil denumit result.
Not: XOR, AND, NOT sunt operatorii logici uzuali, iar << este operatorul de shiftare la stnga.
5.1.4 Exerciiul 4
Cerin: Scriei un subprogram care s primeasc ca parametri de intrare adresa de nceput i
numrul de elemente pentru un ir de numere de 16 bii, fr semn i s returneze suma
elementelor irului (prin intermediul registrelor AX i DX). Exemplificai modul de utilizare al
subprogramului ntr-un program care s-l apeleze o singur dat.
Not: pentru a efectua i returna suma elementelor irului trebuie s se foloseasc dou registre
(AX i DX) pentru c rezultatul poate fi un numr pe 32 de bii.
5.1.5 Exerciiul 5
Cerin: Scriei un subprogram care s primeasc ca parametri de intrare adresa de nceput i
numrul de elemente pentru un ir de caractere ce conine numai litere i returneze numrul de
litere mari (prin intermediul registrului DX). Exemplificai modul de utilizare al subprogramului
ntr-un program care s-l apeleze o singur dat.
Not: pentru prelucrarea elementelor irului este obligatorie copierea elementelor n
acumulator utiliznd instruciunea de transfer de date pentru iruri lods.
Indicaie: subprogramul va verifica dac elementul curent al irului este liter mare verificnd
dac codul ASCII al elementului curent este mai mic dect codul ASCII al literei Z (5Ah).
5.1.6 Exerciiul 6
Cerin: Scriei un subprogram care s primeasc ca parametri de intrare adresa de nceput i
numrul de elemente pentru un ir de caractere ce conine numai litere (denumit n continuare
ir surs), ct i adresa de nceput a unui al doilea ir (denumit n continuare ir destinaie).
Subprogramul trebuie s copieze n irul destinaie numai literele mici din irul surs i s
returneze numrul de elemente copiate (prin intermediul registrului DX). Exemplificai modul
de utilizare al subprogramului ntr-un program care s-l apeleze o singur dat.
Not: pentru transferul elementelor irurilor este obligatorie utilizarea instruciunilor de
transfer de date pentru iruri lods i stos.
Indicaie: subprogramul va verifica dac elementul curent al irului este liter mic verificnd
dac codul ASCII al elementului curent este mai mare dect codul ASCII al literei a (61h).

S-ar putea să vă placă și