edutecnica

Esercizio 2        

Per sommare due numeri possiamo anche usare il segmento .DATA caricando i due valori da sommare nei due operandi OP1 ed OP2. L'istruzione
SUB AX,AX
azzera il contenuto del registro che poi verrà successivamente caricato con i due operandi
TITLE DUE
;somma di due numeri
.MODEL SMALL
.STACK
.DATA
OP1 DB 55
OP2 DB 33
.CODE
MOV AX,@DATA
MOV DS,AX

SUB AX,AX
MOV AL,OP1
ADD AL,OP2
CALL TRAD
MOV AX,4C00H
INT 21H

;_________stampa
TRAD PROC NEAR
MOV CL,10 DIV CL;divido AL per il valore di CL=10
;il quoto della divisione va il AL, il resto va in AH
PUSH AX
CMP AL,0
JE SALTA
ADD AL,48 ; stampa del quoto
MOV AH,02
MOV DL,AL
INT 21H
SALTA:
POP AX
XCHG AL,AH ; scambio il contenuto dei due registri
ADD AL,48 ; stampa del resto
MOV AH,02
MOV DL,AL
INT 21H
RET
TRAD ENDP
END

Le due istruzioni
RET TRAD
ENDP


Dopo l'invocazione della procedura che stampa il risultato della somma contenuto nel registro AL, il programma termina .