ciao a tutti
per un progetto scolastico devo realizare un programma che simuli un palmare, all avvio viene chiesto un pin
cont:

CMP SI,4
JE confronta
JL leggi
JG err


leggi:

PUSH _GETCHAR

SYS
CMPB AL,'\n'
JE rileggi
ADD SI,1

CMPB AL, '0'

JL err
CMPB AL, '9'

JG err
.
.
.
JMP cont



rileggi:

ADD SP,2

MOV SI,0

JMP leggi

il problema è nella chiamate _GETCHAR che quando viene eseguita permette di inseriredei caratteri, ma se ne possono inserire infiniti finche non si preme invio, poi la lettura dei caratteri viene fatta una alla volta
e tramite dei calcoli si ottiene il numero intero che poi viene confrontato con quello di un file che funge da database, se il pin è errato ci sono altri 2 tentativi poi dopo viene chiesto il puk. Il problema nasce se la prima volta che si esegue _GETCHAR si inserische una serie di caratteri piu lunga di 4 per esempio se io inserisco 16 cifre lui legge le prime 4 controlla se sono giuste, se sono errate il secondo pin lo continua a leggere dalle 16 cifre inserite prima. Quindi cerco un modo o di limitare il numero di cifre inserite o di cancellare il buffer di input quando vengono raggiunte le 4 cifre.
grazie