Sunteți pe pagina 1din 4

Instructiuni aritmetice

Instructiunea add
Semnificatia instructiunii:aduna cei 2 operanzi,iar rezultatul este depus in
operandul destinatie.
Sintaxa:add <destinatie>,<sursa>
Exemple:
add ax,[bx] ;adunaelementul indicat de registrul bx cu valoarea registrului
ax si rezultatul il
;depune in registrul ax
add ax,10 ;aduna 10 cu valoarea registrului ax si depune rezultatul in
registrul ax
Instructiunea inc
Semnificatia instructiunii:adauga valoarea 1 la operandul destinatie.
Sintaxa :inc<destinatie>
Exemple:
inc cx
;valoarea din registrul cx este incrementata cu 1
inc [bx]
;valoarea locatiei de memorie indicate de registrul bx este
incrementata cu 1
inc lm
;vaoarea locatiei de memorie lm este incrementata cu 1
Instructiunea sub
Semnificatia instructiunii:din operandul de destinatie se scade operandul
sursa,iar rezultatul este depus in operandul destinatie.
Sintaxa: sub <destinatie>,<sursa>
Exemple:
sub ax,[bx]
;scade valoarea locatiei de memoriei indicata de registrul
bx din valoarea
;registrului axis rezultatul il depne in registrul ax
sub ax,10
;scade 10 din valoarea registrului ax si depune rezultatul in
registrul ax
sub bh,lm
;scade continutul locatiei de memorie lm din valoarea
registrului bh si depune
;rezultatul in registrul bh

Instructiunea dec
Semnificatia instructiunii:scade valoarea 1 din operansul destinatie.
Sintaxa: dec <destinatie>
Exemple:
dec cx
;valoarea din registrul cx este decrementata cu 1
dec [bx] ;valoarea locatiei de memorie indicate de registru bx este
decrementata cu 1
dec lm
;valoarea locatiei de memorie lm este decrementata cu 1
Instructiunea neg
Semnificatiea instructiunii:din valoarea 0 se scade continutul destinatiei
,iar rezultatul este de asemenea depus in operandul destinatie.
Sintaxa: neg <destinatie>
Exemple:
neg cx
;este schimbat semnul valorii registrului cx
neg [bx]
;este schimbat semnul valorii locatiei de memorie indicate de
registrul bx
neg lm
;este schimbat semnul valorii locatiei de memorie lm
Instructiunea de schimbare a semnului neg poate sa nu schimbe
valoareaoperandului daca numarul se afla la limita diapazonului
admisibil.De exemplu:
mov al, -128
nel al
Instructiunea cwd
Instructiunea converteste un cuvint intr-un cuvint dublu reproducind cel
de-al 15-lea bit(bitul superior) al registrului ax-in toti bitii registrului dx,adica
extinde bitul de semn din ax in intreg registrul dx.Astfel instructiunea cwd
permite impartirea cuvintului la cuvint.
Exemplu:
cwd
idiv bx
;imparte cuvintul din ax la cuvintul din bx

a)Calcularea valorii unei expresii ,termenii careia sunt numere fara semn
definite in program:
16)90-(41-4)*3/6

.model small
.stack
.data
a db 90
b db 41
z db 5
d db 3
e db 6
.code
mov ax,@data
mov ds,ax
segmentului in care
mov cx,a
mov al,b
sub al,z
mul d
div e
sub cl,al
mov ah,4ch
int 21h
end

;initializarea segmentului de date


;initializarea registrului de segment ds
;registrul de segment ds trebuie sa contina adresa
;sunt definite datele
;in cx se pune adresa buffer-ului a
;in al se pune adresa buffer-ului b
;scade continutul locatiei de memorie z

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