Sezione |
Indirizzi Base
Registri Interni
|
Capitolo 1 |
Il Processore e il Debugger |
DEBUG 19/22 [47 di 60] |
|
I comandi più importanti del debugger sono certamente quelli descritti in questa pagina e nella successiva: la loro azione è rivolta decisamente al collaudo di un programma, cioè alla sua esecuzione controllata. |
Benedetto sia Debug e il suo inventore!
Se il tuo programma fa i capricci e il tuo umore assomiglia ad una notte senza luna, basta forzare l'esecuzione fino ad un certo punto sicuro (comando G) e poi procedere a piccoli passi (comando T) evitando di eseguire (comando P) le procedure personali (riconoscibili dallo mnemonico CALL) o di sistema (attivate dall'istruzione INT). | |
L'errore salta fuori da solo, di solito con un ghigno di superiorità, per farti capire quanto sei frescone... Non dimenticare: |
il computer ha
sempre ragione....
per il semplice fatto che tu lo hai istruito
|
|
Il comando T (TRACE, traccia) esegue una o più istruzioni; di solito viene usato senza parametri, al fine di eseguire l'istruzione corrente (cioè quella puntata da CS:IP); subito dopo visualizza automaticamente la nuova situazione dei registri e le informazioni relative all'istruzione cha sta per essere eseguita (indirizzo logico, codici associati e stringa mnemonica). | |||||
La tecnica garantita da questo comando è nota come esecuzione passo-passo. | |||||
Questo comando consente l'uso di 2
parametri, entrambi poco pratici (almeno dal mio punto di vista):
|
Dopo aver caricato il programma prova.com, usato nel capitolo 2 per esercitarci nella sua creazione, e dopo averlo visualizzato con il comando U (parte alta dell'immagine), possiamo vedete l'effetto dell'esecuzione passo-passo delle prime 3 istruzioni (parte bassa): |
NB: | per poter vedere questo effetto
devi prima scaricare il file eseguibile
prova.com nella cartella di lavoro dell'Ambiente
Assembler; per fare questo devi:
|
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 |
|
-f 100 1000 00 -n prova.com -l -u 11A0:0100 B400 MOV AH,00 11A0:0102 B003 MOV AL,03 11A0:0104 CD10 INT 10 11A0:0106 B400 MOV AH,00 11A0:0108 CD16 INT 16 11A0:010A B44C MOV AH,4C 11A0:010C CD21 INT 21 11A0:010E 0000 ADD [BX+SI],AL |
|
-t AX=0000 BX=0000 CX=000E DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=11A0 ES=11A0 SS=11A0 CS=11A0 IP=0102 NV UP EI PL NZ NA PO NC 11A0:0102 B003 MOV AL,03 -t AX=0003 BX=0000 CX=000E DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=11A0 ES=11A0 SS=11A0 CS=11A0 IP=0104 NV UP EI PL NZ NA PO NC 11A0:0104 CD10 INT 10 -t AX=0003 BX=0000 CX=000E DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000 DS=11A0 ES=11A0 SS=11A0 CS=0212 IP=08A9 NV UP DI PL NZ NA PO NC 0212:08A9 2E803EA70802 CMP Byte Ptr CS:[08A7],02 CS:08A7=00 |
|
Osserviamo con calma cosa ci fornisce Trace:
|
|
Capitolo 1 | DEBUG 19/22 | |||||||
47 di 60 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|