| Vediamo il dettaglio:
| punta di nuovo l'area
che, ora, conserva la sequenza di codici ascii,
terminata con quello del tasto Invio
(LEA SI,DEPO) |
| assume uno dopo l'altro (MOV
AL,CS:[SI], metti inAL
il contenuto della
locazione puntata da
CS:[SI]),
i caratteri letti in precedenza dalla tastiera |
| ricerca il codice del tasto Invio
(CMP AL,Invio),
ponendo fine all'analisi, non appena viene rilevato |
| ignora qualunque codice ascii, con la sola eccezione di
quelli delle lettere minuscole;
in questo caso manipola il
suo codice ascii in modo da forzare comunque il suo bit5
a 0, trasformandolo in quello della
lettera maiuscola
corrispondente con l'aiuto dell'istruzione
AND (AND
AL,1101111B), cioè applicando a
AL la maschera
110111112=DFH |
| è facile verificare che (per esempio) il codice di 'a'
(=61H=011000012)
diventa quello di 'A' (=41H=010000012) |
| il nuovo codice ascii viene
forzato nella stringa sorgente (MOV
CS:[SI],AL), al posto e nella stessa posizione di
quello che lo ha generato |
| la tecnica di verifica è analoga a quella usata per
discriminare tra i tasti premuti, affidando la
verifica all'intervallo dei codici
compresi tra ''a'
(codice 61H, CMP AL,'a',
JB xxx03, Below) e 'z'
(codice 7AH, CMP AL,'z',
JA xxx03, Above)
delle lettere minuscole: |
|