Programare ı̂n Limbaj de Asamblare
Tema 1
Rares Prelipcean
Problema 1 [4p]
Scriet, i un program care evaluează expresia de mai jos, unde x s, i z sunt variabile
pe 32 bit.
(z + 18) ∗ (x + 4)
Rezultatul evaluării trebuie să ajungă ı̂n registrul EAX.
Exemple:
pentru x = 6, z = 11 rezultatul este 290;
pentru x = 14, z = 9 rezultatul este 486;
pentru x = 3, z = 8 rezultatul este 182;
Problema 2 [3p]
Scriet, i un program care evaluează expresia de mai jos, unde AH, CH s, i DH
sunt regis, tri pe 8 bit, iar y s, i z sunt variabile pe 8 bit.
(z ∧ y) | CH ∧ (DH | (AH ∧ y))
Rezultatul evaluării trebuie să ajungă ı̂n registrul AL.
Exemple:
pentru AH = 16, CH = 13, DH = 11, y = 14, z = 19 rezultatul este 224;
pentru AH = 6, CH = 19, DH = 11, y = 5, z = 14 rezultatul este 228;
pentru AH = 20, CH = 5, DH = 2, y = 4, z = 4 rezultatul este 232;
Problema 3 [3p]
Scriet, i un program care evaluează expresia de mai jos, unde BX, DX s, i SI sunt
regis, tri pe 16 bit, iar b s, i x sunt variabile pe 16 bit.
b−2
BX ∗ b 9
− ∗ (DX − 8)
x − 14 SI
Rezultatul evaluării trebuie să ajungă ı̂n registrul AX.
Exemple:
1
pentru BX = 13, DX = 5, SI = 10, b = 9, x = 3 rezultatul este 0;
pentru BX = 3, DX = 7, SI = 18, b = 16, x = 7 rezultatul este 2;
pentru BX = 8, DX = 9, SI = 16, b = 16, x = 5 rezultatul este -1;