Operații de asamblare aritmetică

Programarea expresiilor aritmetice în limba de asamblare are loc prin intermediul unor comenzi cum ar fi: mul, div, sub, add. Aceste comenzi se numesc operații aritmetice.








Mul este comanda de multiplicare. Înmulțește registrul axului cu ceea ce este după el. Rezultatul este introdus în ax.
Comandamentul Diviziei. Se împarte axa registru cu ceea ce stă după ea. Rezultatul este introdus în ax.
Adăugați este comanda de adăugare. Se asociază două numere. Rezultatul este înregistrat în primul registru.
Sub este comanda de scădere. Scăde două numere. Rezultatul este înregistrat în primul registru.

Un exemplu. Scrieți un program în asamblare evaluând expresia: a - e / b - de;
unde a = 5;
b = 27;
c = 86;
e = 1986;
d = 1112;
Rezultatul evaluării expresiei este stocat în memorie. Setați valoarea și ordinea plasării datelor în memorie.

686; microprocesor
.model plat, stdcall; atribuirea unui model de memorie liniară






; dar Windows OS

date; directiva de definire a datelor
_a dw 5; scrieți în coșul de memorie pe 16 biți cu numele _a numărul 5
_b dw 27; înregistrați _b = 16h
_c dw 86; înregistrați _c = 56h
_e dw 1986; înregistrare _e = 7C2h
_d dw 1112; înregistrați _d = 458
res dw 0; rezervare de memorie pentru stocarea res

cod; instrucțiune linie de comandă
începe:
mov edx, 0; registrele de compensare
mov ebx, 0; registrele de compensare
mov ecx, 0; registrele de compensare
mov ah, _e; în registrul ah se introduce numărul _e = 7C2h
mul _d; înmulțiți _e și _d
SHL edx, 16; facem zdvig pe 16
mov dx, ax
împingeți edx; aruncăm valoarea în stivă
mov edx, 0
mov ah, _e
mov cx, _b
div cx; noi împărțim ax cu cx
pop ecx; obțineți valoarea din stack
sub ecx, eax; noi luăm
mov ah, _a
sub eax, ecx
mov res, eax
ret; return control OS
sfârșitul începutului; sfârșitul programului numit _start

Rezultatul programului


Operații de asamblare aritmetică







Articole similare

Trimiteți-le prietenilor: