|
 |
Il Processore e il Debugger |
DEBUG 16/22
[44 di 60] |
|
 |
|
Aggiornato
24 settembre 2003 e 17 febbraio 2005 |
 |
|
Comando W - Scrivi su disco il codice di un file eseguibile |
|
 | Il comando W
(WRITE, scrivi) permette di creare un
file (o sovrascriverlo, se già esiste) nella cartella corrente del disco; di solito viene dato
dopo aver specificato il nome (e
l'eventuale percorso) del file con il comando N, già
discusso in
precedenza; |
 | Se il comando è dato senza parametri
|
 | Se l'indirizzo specificato è solo
quello di offset i dati da scrivere si ritengono
appartenenti al segmento CS. |
 |
Quando
si usa il comando W per salvare il nostro lavoro in un file
sul disco non bisogna dimenticare di caricare nei
registri BX e CX la parte alta e bassa del numero a 32
bytes che indica la quantità di bytes da salvare!! |
 |
Il
modo più semplice per calcolare il numero da mettere
in BX,CX consiste nel prendere l'indirizzo di offset
della locazione successiva all'ultima e sottrarre da esso il numero
0100H. |
 | Se, dopo una sessione di lavoro abbiamo
prodotto una codice eseguibile (o una tabella) di 200 bytes, al momento del
salvataggio su disco dobbiamo eseguire, in sequenza, tutte queste
operazioni:
 | dare un nome al file da creare (o
sovrascrivere) |
 | scrivere in BX il valore
0000H e i CX il
valore 00C8H (esadecimale di 200) |
 | finalmente scrivere e confermare il
comando W: |
|
 |
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 |
-n
miofile.com
-r bx
BX 0000
:0000
-r cx
CX 0000
:00c8
-w
Scrittura di 000C8 byte in corso
- |
-n miofile.com
-r bx 0000
-r cx 00c8
-w
Writing 00C8 bytes
- |
 | Se tutto va bene debug mostra il messaggio
mostrato in figura (a sinistra con Debug standard e a destra con SymbDeb), e
rimane in attesa di ulteriori comandi. |
 |
|
Comando W - Scrivi i bytes di uno o più settori di un
disco |
|
 | Il comando W
(WRITE, scrivi) è complementare al
comando
L, usato per caricare in memoria uno o più settori di una memoria di massa (hard
disk o floppy disk); naturalmente serve per fare l'operazione opposta. |
 | La specifica dell'indirizzo (offset)
da cui prelevare i bytes da salvare su disco, è dunque indispensabile: essa
deve essere eseguita dopo il comando W e prima dei 3 parametri necessari per
individuare i settori del disco da sovrascrivere:
 | il primo è un numero che indica il disco
su cui scrivere i dati: 0 per il drive A, 1 per il drive B, 2 per
il drive C, e cosi via... |
 | il secondo è il numero
(logico) del primo settore da sovrascrivere nel disco
appena indicato; la descrizione di questo numero è già stata
ampiamente discussa nella
pagina
precedente; non ci sembra
il caso di ripeterla. |
 | il terzo e il numero
di settori da scrivere; non è possibile leggere più di 80
settori, pari a 40k di memoria. |
|
 |
Ti
prego di fare molta attenzione: la pratica del comando W è ad altissimo rischio!!
Se usata con discrezione,
sicurezza e competenza può rivelarsi uno strumento potente,
ma non dimenticare che quando la usi ti comporti come un virus:
cancelli e sostituisci parti del tuo disco!!
Ti consiglio di fare
le prove con un dischetto floppy
e di non toccare l'HD, se non sei ben certo di quello che fai. |
 | L'esempio mostra come scrivere su un floppy
disk i 2kbytes (4 settori) attualmente presenti
all'indirizzo CS:1000H; si legge: preleva a partire dalla locazione 1000, i bytes da scrivere sul disco 0 (driver
A); il primo settore da sostituire è il 64 (valore
esadecimale pari a 100) nella quantità 4 (4
settori, cioè 512*4 bytes = 2048 bytes = 2k):
| -w
1000 0 64 4 ; comando per scrivere 4 settori sul disco |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|