title Test2     ;Titolo del programma
.model small   ;Modello di utilizzo della memoria
.stack         ;Occupazione del segmento di stack
.data          ;Segmento dati qui si definiscono le variabili utilizzate

mess_piu_grande  db   'Piu'' grande !',10,13,'$'     
mess_piu_piccolo db   'Piu'' piccolo !',10,13,'$'
mess_indovinato  db   'Indovinato dopo: ','$'
mess_tentativi   db   ' tentativi',10,13,'$'
mess_damm_num    db   'Dammi un numero: ','$'
acapo            db   10,13,'$'
Tentativi				 db 0               
.code          ;Segmento codice: da quindi si scrive il programma
.startup       ;Modulo di inizializzazione prima dello start del programma
  mov ax,0
  mov si,46Ch
  push ds
  mov ds,ax
  mov bx,[si]
  pop ds
  shl bl,5
  shr bl,5
  add bl,30h 

ciclo:
  mov ah,09
  mov dx,offset mess_damm_num
  int 21h
  mov ah,01
  int 21h 
  push ax
  mov ah,09
  mov dx,offset acapo
  int 21h
  pop ax    
  inc Tentativi    
  cmp al,bl
  ja maggiore
  jb minore
  mov ah,09
  mov dx,offset mess_indovinato
  int 21h
	mov dl,Tentativi
	add dl,30h
	mov ah,2
	int 21h
  mov ah,09
  mov dx,offset mess_tentativi
  int 21h	
.exit          ;Modulo di chiusura del programma
maggiore:
  mov ah,09
  mov dx,offset mess_piu_piccolo
  int 21h
	jmp ciclo	
minore:
  mov ah,09
  mov dx,offset mess_piu_grande
  int 21h
	jmp ciclo	
end