| Sembra un codice scontato...; tuttavia desidero
sottolineare alcuni interessanti spunti:
| per puntare l'area
destinata a conservare i caratteri che stiamo per
leggere, uno dopo l'altro, dalla tastiera conviene sempre usare l'istruzione
LEA (LEA
SI,DEPO) |
| il compito è quello di affidare ad un registro (SI)
il valore associato dall'assemblatore all'etichetta
DEPO, cioè l'indirizzo della locazione iniziale di
questa zona di memoria |
| lo stesso compito dell'istruzione
LEA
può essere svolto dalla
MOV SI,OFFSET DEPO, meno
compatta nella forma, anche se l'operatore OFFSET consente il
risparmio di un
byte nella compilazione dei rispettivi codici macchina |
| è comunque necessario predisporre l'area di memoria
DEPO, nella zona destinata ai
dati del programma: |
| in casi come questo è conveniente l'uso dell'operatore DUP
che consente di riservare spazio per una quantità n di
dati
del tipo e della
dimensione indicato dal contenuto delle sue parentesi |
| nel nostro caso vengono riservate
80 locazioni consecutive, precaricate
tutte con
spazi |
| questa consapevolezza ci consiglia (o meglio, ci obbliga) a
limitare
a 80 il numero di tasti premuti,
altrimenti l'eseguibile continuerà ad immetterne il codice ascii, occupando
anche le locazioni successive a quelle destinate a questo scopo |
| come puoi vedere in questo caso il rischio è limitato,
essendo le locazioni successive occupate
dal testo dei messaggi già posti a video, cioè già utilizzate dal programma;
ma prova a pensare cosa sarebbe successo se subito dopo fosse cominciato il
codice assembly di una procedura o del
main program... |
|