.model small
.stack
.data
Cont db 0
NumIns db ?
NumGue db 26
mex0 db "Inserire il numero : $"
mex1 db "Il numero inserito e' piu' grande $"
mex2 db "Il numero inserito e' piu' piccolo $"
mex3 db "Hai indovinato! $"
.code
;Macro per andare a capo
CR macro
mov dl,10
mov ah,02
int 21h
mov dl,13
mov ah,02
int 21h
endm
inizio:
mov ax,@data
mov ds,ax
mov bl,NumGue
;inizio il ciclo per la richiesta di inserimento numero
;finchè non è uguale a quello stabilito
ciclo:
lea dx,mex0
mov ah,09
int 21h
mov ah,01
int 21h
;inizio ciclo lettura cifra diun byte
mentre:
cmp al,13
je finementre
sub al,30h
mov NumIns,al
mov al,Cont
mov cl,0
mul cl
add al,NumIns
mov Cont,al
mov ah,01h
int 21h
jmp mentre
finementre:
CR
;confronto con il numero inserito e il numero da indovinare
cmp NumIns,bl
ja numMag
je fineciclo
numMin:
lea dx,mex2
mov ah,09
int 21h
CR
jmp ciclo
numMag:
lea dx,mex1
mov ah,09
int 21h
CR
jmp ciclo
fineciclo:
lea dx,mex3
mov ah,09
int 21h
mov ah,4Ch
int 21h
end inizio