Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  La Tabella dei Vettori

SCHEDA n° 04 [ 3  di 15] 

    

    Indagine in memoria...
     
bulletLa Tabella dei Vettori d'Interruzione può essere analizzata in ogni momento con qualunque editor di memoria, per esempio con il comando D del Debug; in questo caso nella shell DOS che ci ospita verrebbe visualizzato un testo simile a questo:

      

C:\ARCH-LAB\SITO>debug
Microsoft (R) Symbolic Debug Utility Version 4.00
Copyright (C) Microsoft Corp 1984, 1985. All rights reserved.

Processor is [80286]
-d 0000:0000
0000:0000 68 10 A7 00 8B 01 70 00-16 00 B1 03 8B 01 70 00 h.'...p...1...p.
0000:0010 8B 01 70 00 B9 06 12 02-40 07 12 02 FF 03 12 02 ..p.9...@.......
0000:0020 46 07 12 02 EC 06 92 0E-3A 00 B1 03 54 00 B1 03 F...l...:.1.T.1.
0000:0030 6E 00 B1 03 88 00 B1 03-A2 00 B1 03 FF 03 12 02 n.1...1.".1.....
0000:0040 A9 08 12 02 A4 09 12 02-AA 09 12 02 5D 04 12 02 )...$...*...]...
0000:0050 B0 09 12 02 0D 02 ED 02-25 6A A3 12 8B 05 12 02 0.....m.%j#.....
0000:0060 0E 0C 12 02 14 0C 12 02-1F 0C 12 02 AD 06 12 02 ............-...
0000:0070 AD 06 12 02 A4 F0 00 F0-37 05 12 02 90 35 00 C0 -...$p.p7....5.@

      

bulletE' chiaro che, essendo la Tabella una struttura dinamica, dipendente dal contesto (cioè dalla versione del BIOS e del sistema operativo presente sul computer), può succedere che i valori indicati nella figura possano essere diversi, a casa tua.

      

bulletIn 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

      

bulletIn 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

      

bulletTutto 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)
bulletNelle figure ho usato diversi colori per sottolineare questa importante regola, sempre valida anche quando tocca a noi inserire word o doubleword in memoria.

      

bulletHo già anticipato che l'analisi della Tabella dei Vettori d'Interruzione è molto accattivante, aiuta a capire i segreti; per questo uno dei primi esercizi di programmazione, altamente didattico, consiste nella realizzazione di un analizzatore di tabella.
bulletSe lo desideri ne ho curato personalmente una versione super, Tabvett.COM, scaricabile qui; l'immagine seguente ti mostra la prima delle schermate ottenibili con questa originale utility:

      

      

bulletIn dettaglio essa riassume e riorganizza (in nero) i primi 32 vettori proposti dalla schermata di debug, aggiungendo (in giallo) l'indirizzo logico della locazione della tabella in cui è conservato il vettore e (in bianco su rosso) anche il numero esadecimale associato a ciascun vettore.

    

Pagina Precedente Scheda n° 04 Pagina Successiva La Tabella dei Vettori Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 04 -  3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati