| il debugger esprime le informazioni
esclusivamente in
esadecimale, ma
non ammette (e non mette)
la H finale |
|
per ogni istruzione il debugger mostra l'indirizzo
in cui stata compilata, i codici operativi
corrispondenti e
la stringa mnemonica |
| l'indirizzo mostrato segmentato, cio composto da un segment
e un offset:
|
il valore del segment
irrilevante: nel mio esempio vale
1B62H, ma sul
tuo computer potrebbe avere valore diverso perch dipende dall'effettivo
segmento di memoria in cui dos ha caricato il programma Debug,
che a sua volta ha caricato il nostro EsA001.COM |
| la parte offset (nell'esempio
da
0100H
in poi)
invece molto istruttiva: l'esatto indirizzo non rilocabile di ciascuno dei
byes del codice macchina presente dell'eseguibile COM; osservandolo con
attenzione ci accorgiamo che esso viene incrementato, di volta in volta,
con il numero di bytes di cui composta l'istruzione corrente |
|
|
le istruzioni
INT
hanno codice operativo
CDH
(il secondo bytes l'operando con il numero di INT desiderata) |
|
le istruzioni MOV
non hanno lo stesso codice operativo: quelle con
AH
hanno codice
B4H
e quelle con AL
hanno codice
B0H |
|
l'istruzione iniziale di salto
JMP ha codice operativo
EBH
e l'operando, uguale a 01H,
sta ad indicare che deve essere saltato un solo byte |
|
l'istruzione
INT 21
l'ultima del nostro eseguibile; dopo di essa sono mostrate
istruzioni dall'aspetto strano, ma la
loro presenza irrilevante perch quando il processore eseguir questa
importante chiamata di sistema, il
controllo sar gi passato ad altro codice eseguibile, non pi appartenente a EsA001.COM (per
cui le
istruzioni dall'aspetto strano non
saranno mai eseguite). |