Dati SEGMENT
vett db 2 dup(0)
max db ?
min db ?
inserisci1 db "Inserisci la prima cifra da comparare",0dh,0ah,"$"
inserisci2 db "Inserisci la seconda cifra da comparare",0dh,0ah,"$"
magg db "Il maggiore e'",0dh,0ah,"$"
mino db "il minore e'",0dh,0ah,"$"
Dati ENDS
Sistema SEGMENT STACK
DW 100 DUP (?)
Top LABEL WORD
Sistema ENDS
Codice SEGMENT
;definizione dei segmenti
ASSUME CS:Codice, SS:Sistema, DS:Dati, ES:Dati
Inizio:
;inizializzazione dei registri di segmento
MOV AX,Sistema
MOV SS,AX
LEA AX,Top
MOV SP,AX
MOV AX,Dati
MOV DS,AX
MOV ES,AX
;programma
lea dx, inserisci1
mov ah,09h
mov al,00h
int 21h
mov ah,01h
mov al,00h
int 21h
sub al, 48d
mov di,00d
mov [vett+di],al
inc di
;SPAZIO
MOV DL,13
MOV AH,02h
INT 21h
MOV DL,10d
MOV AH,02h
INT 21h
lea dx,inserisci2
mov ah,09h
mov al,00h
int 21h
mov ah,01h
mov al,00h
int 21h
sub al, 48d
mov [vett+di],al
mov di,00d
mov al,[vett+di]
inc di
mov bl,[vett+di]
;if
cmp ax,bx
jng else1
mov min,bl
mov max,al
lea dx, magg
mov ah,09h
mov al,00h
int 21h
mov dl,max
add dl,48d
mov ah,02h
mov al,00d
int 21h
;SPAZIO
MOV DL,13
MOV AH,02h
INT 21h
MOV DL,10d
MOV AH,02h
INT 21h
lea dx,mino
mov ah,09h
mov al,00h
int 21h
mov dl,min
add dl,48d
mov ah,02h
mov al,00d
int 21h
jmp fine
else1:
mov min,al
mov max,bl
lea dx, magg
mov ah,09h
mov al,00h
int 21h
mov dl,max
add dl,48d
mov ah,02h
mov al,00h
int 21h
;SPAZIO
MOV DL,13
MOV AH,02h
INT 21h
MOV DL,10d
MOV AH,02h
INT 21h
lea dx,mino
mov ah,09h
mov al,00h
int 21h
mov dl,min
add dl,48d
mov ah,02h
mov al,00d
int 21h
fine:
; riporto
mov al,00h
mov ah,4ch
int 21h
codice ends
end inizio
mi da un problemino quando ax<bx passa a dritto denza andare all'else