edutecnica

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 .