Sezione |
Indirizzi Base
Registri Interni
|
Schede del Tutorial |
Le PseudoOperazioni di MASM |
SCHEDA n° 02 [ 18 di 26] |
|
|
Nell'indirizzamento immediato delle variabili (come in MOV AL,[ATTRIB]) o in quello di locazioni di memoria (per esempio tramite registro, MOV AL,[SI]) è possibile forzare il compilatore a creare codice macchina con registro di segmento diverso da quello imposto dalle assegnazioni di ASSUME; l'effetto si ottiene anteponendo alla parentesi quadra [ la stringa ottenuta con il nome del registro desiderato seguito da : (per esempio CS:). |
|
Questa tecnica si chiama override (letteralmente: annullamento, ma tecnicamente sovrapposizione di segmento) e, in genere costa un byte di codice macchina in più (come possiamo facilmente vedere osservando il codice prodotto in ambiente Debug). |
|
L'uso dell'override è molto interessante e torna utile quando è necessario puntare locazioni presenti in aree particolari della nostra memoria; l'esempio classico è quello che coinvolge la Ram Video. |
|
A
tutti è noto che, nei modi
testo, usa le locazioni a partire dall'indirizzo fisico
B8000H;
per questo conviene dedicare un registro di segmento (di solito ES)
per coprire quest'area, ricorrendo poi
all'override per leggere o
scrivere in essa: il codice mostra come leggere in AL il suo primo bytes; se
non si usasse l'override la
lettura avverrebbe dal segmento di default DS, uguale nei nostri programmi
intrasegmentali a CS.
|
|
Scheda n° 02 | Pseudo Operazioni di MASM | |||||||
Scheda n° 02 - 18 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|