Sezione |
Indirizzi Base
Registri Interni
|
Capitolo 1 |
Il Processore e il Debugger |
DEBUG 11/22 [39 di 60] |
|
|
|
Aggiornato 24 settembre 2003 e 17 febbraio 2005 |
|
Sebbene sia ormai chiaro che l'ambiente debug non sia particolarmente adatto al progetto (ma indispensabile nel collaudo...) nelle rare occasioni in cui viene deputato a tale compito può essere necessario spostare una certa quantità di bytes per poterne intromettere altri. | |
In realtà più che di uno spostamento si tratta di una copia, dato che i bytes coinvolti saranno ancora presenti nelle locazioni sorgente. | |
Il comando M (MOVE, muovi) si aspetta 3 indirizzi (offset): quello iniziale e finale dell'area in cui sono contenuti i bytes da copiare e quello iniziale dell'area in cui si desidera copiarli. | |
Se l'indirizzo specificato è solo quello di offset i dati visualizzati si ritengono appartenenti al segmento puntato da DS; in condizioni di default tutti e 4 i registri di segmento hanno lo stesso valore, per cui il problema non si pone; naturalmente è possibile passare anche indirizzi completi (cioè anche con il valore del segment). | |
Nell'esempio seguente i primi 32 bytes a partire dall'indirizzo DS:0100H sono copiati nelle locazioni a partire da DS:0500H; la conferma del comando con Invio sembra non produrre alcun effetto, ma la successiva conferma con il comando D mostra l'avvenuto servizio: |
Se fai click sull'icona a
sinistra si apre l'Ambiente Assembly
e puoi
provare DEBUG
on-line. Scegli il pulsante di opzione "Aprire il file" o "Esegui l'applicazione" e conferma con OK. NB: alcuni gestori di protezione (per esempio SP2 di WinXP) non ti consentono questa operazione: in questo caso scrivi c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser |
|
|
Il comando può essere dato passando l'indirizzo iniziale della prima area e la lunghezza (espressa con una L seguita dal numero esadecimale delle locazioni da copiare) seguito dall'indirizzo iniziale della seconda area: |
|
Non possiamo passare oltre senza sottolineare la magia di questo comando: se l'area sorgente e quella di destinazione si sovrappongono la copia viene portata a termine senza perdita di informazione; naturalmente l'area sorgente non potrà rimanere inalterata se quella di destinazione la copre! |
|
Capitolo 1 | DEBUG 11/22 | |||||||
39 di 60 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|