Esercizio 3
A differenza del caso precedente per eseguire la differenza di due numeri
possiamo evitare di usare il segmento .DATA caricando gli operandi direttamente
nei registri AL e BL.
TITLE TRE
;sottrazione di due numeri
.MODEL SMALL
.STACK
.DATA
.CODE
MOV AL,70
MOV BL,55
SUB AL,BL
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 differenza
contenuto nel registro AL, il programma termina .