| La prima fase si
occupa della lettura del dato numerico della Tastiera;
le operazioni necessarie in questo caso sono:
| la predisposizione di una zona di
memoria DEPO in cui
memorizzare la sequenza di caratteri assunti: il registro
SI è incaricato
(LEA SI,DEPO) di puntare il
valore della
locazione corrente, predisposta nella zona
variabili per questo scopo |
| l'attesa della pressione di un tasto qualunque
(CALL KEYwait) e la successiva
verifica di ammissibilità:
| se il tasto premuto è Invio
si pone fine
all'acquisizione |
| se il tasto premuto non
è numerico (cioè se più
grande dell'ultimo numero, '9'=39H (CMP AL,'9',
JA xxx00, Above) o
più piccolo del primo
numero, '0'=30H (CMP AL,'0', JB
xxx00, Below) non
ci interessa: semplicemente lo si ignora, senza segnalazione d'errore,
ritornando in attesa |
| solo se si tratta di un tasto numerico il suo
codice ascii viene salvato nel deposito (MOV
CS:[SI],AL) e poi posto a video (CALL
BIOchr1), prima di tornare in attesa di
pressione tasti |
|
| quando la fase di acquisizione ha termine (per pressione
del tasto Invio) si provvede comunque
a sostituire il suo carattere ascii (=0DH) con
00H, per assicurare il terminatore alla
stringa acquisita; con questo artificio sarà possibile stamparne il contenuto
direttamente con la Macro
M_msgC. |
|