La lettura della memoria fisica non è il vero problema da risolvere: qualunque processore recupera il suo contenuto (un byte, 8bit) con una sola istruzione, per esempio MOV AL, ES:[DI] , che lascia nel suo registro accumulatore AL il byte contenuto nella locazione puntata da ES: DI , il puntatore caricato con l'indirizzo logico corrispondente a quello fisico desiderato.

L'indirizzo logico si predispone caricando i due registi ES e DI con le desiderate parti d'indirizzo fisico ; per esempio per scaricare il contenuto dell'indirizzo 001A8H si può usare questo codice:

codice:
	MOV	AX,0000H
	MOV	ES,AX
	MOV	DI,01A8H
	MOV	AL,ES:[DI]
Il problema grosso è ora interpretare a video il valore binario presente in AL: la cosa non è banale e serve un algoritmo di conversione adatto allo scopo ; lo stesso vale per mostrare a video l'indirizzo segmentato della locazione sorgente del dato.

In definitiva si tratta di scrivere 2 procedure specializzate, da Byte o da Word a stringa ascii esadecimale; un esempio concreto (... fatti, non parole) lo puoi vedere nella seguente figura:

che mostra l'effetto di un codice che legge le prime 128 locazioni della Memoria RAM e ne mostra il valore esadecimale, in gruppi di 16, come DEBUG.. In aggiunta mostra l'indirizzo segmentato di ogni gruppo.
Ogni dettaglio del progetto è disponibile qui .

codice:
                      Giobe®2000 - Tutto sull'Assembly    - Lezioni, programmi, segreti, trucchi