| In ogni caso i 128
bytes mostrati sono un buon esempio di dati da
interpretare; già la traduzione Ascii proposta sulla destra
mostra l'assurdità di cercare di tradurre il codice macchina in testo... Noi
sappiamo che si tratta di indirizzi,
per cui vediamo come il comando
dw
del potente Debugger
SymDeb (di proprietà della Microsoft)
mostra le medesime informazioni, visualizzandole come
word:
-dw
0000:0000
0000:0000 1068
00A7
018B 0070 0016 03B1 018B 0070
0000:0010 018B 0070 06B9 0212 0740
0212 03FF 0212
0000:0020 0746 0212 06EC 0E92 003A
03B1 0054 03B1
0000:0030 006E 03B1 0088 03B1 00A2
03B1 03FF 0212
0000:0040 08A9 0212 09A4 0212 09AA
0212 045D 0212
0000:0050 09B0 0212 020D 02ED 6A25
12A3 058B 0212
0000:0060 0C0E 0212 0C14 0212 0C1F
0212 06AD 0212
0000:0070 06AD 0212 F0A4 F000 0537
0212 3590 C000 |
|
| In realtà sappiamo di più: si tratta di
vettori, cioè di
indirizzi logici organizzati nella forma
segment:offset;
SymDeb è in grado di
fornire, con il comando
dd, anche la visualizzazione di tipo doubleword:
-dd
0000:0000
0000:0000 00A7:1068
0070:018B 03B1:0016 0070:018B
0000:0010 0070:018B 0212:06B9
0212:0740 0212:03FF
0000:0020 0212:0746 0E92:06EC
03B1:003A 03B1:0054
0000:0030 03B1:006E 03B1:0088
03B1:00A2 0212:03FF
0000:0040 0212:08A9 0212:09A4
0212:09AA 0212:045D
0000:0050 0212:09B0 02ED:020D
12A3:6A25 0212:058B
0000:0060 0212:0C0E 0212:0C14
0212:0C1F 0212:06AD
0000:0070 0212:06AD F000:F0A4
0212:0537 C000:3590 |
|
| Tutto ciò è molto istruttivo;
in tutti e 3 i casi le figure mostrano i primi
32 vettori inclusi in tabella, ma mentre l'ultima
li propone nella loro classica forma segmentata
la prima mette in evidenza come, effettivamente,
i 4 bytes che concorrono a definire il puntatore siano
inclusi in memoria alla rovescia, cioè con
la più volte citata tecnica Lo-Hi (prima
la parte bassa e poi
quella alta, regola addirittura estesa alla
struttura, prima l'offset e poi il
segment) |
| Nelle figure ho usato diversi colori per sottolineare
questa importante regola, sempre valida anche quando tocca a noi inserire
word
o doubleword in memoria. |