Sezione |
Indirizzi Base
Registri Interni
|
Capitolo 1 |
Il Processore e il Debugger |
DEBUG 20/22 [48 di 60] |
|
|
|
Aggiornato 17 febbraio 2005 |
|
Il comando P
(PROCEED, procedi) esegue
un'intera procedura, di solito rappresentata dall'istruzione
CALL xxxx
o
INT
xyH:
|
|
Dunque, quando il debug ci presenta una di
queste istruzioni:
|
|
Questo comando consente anche di eseguire in blocco le istruzioni ripetute (quelle con prefisso REP) e le istruzioni gestite da LOOP: in questo caso può essere conveniente alternare questa possibilità a quella offerta dal comando T, più adatto per cercare e trovare imperfezioni durante l'esecuzione di queste procedure iterative. |
|
|
Il comando G (GO, vai!) esegue tutto il programma; se viene dato senza parametri inizia l'esecuzione del programma presente in memoria a partire dall'indirizzo CS:0100H; il segmento di default è ovviamente quello di codice, CS. | |||||||||
Naturalmente l'esecuzione "diretta" (senza parametri) del programma non ha senso: per fare questo basta lanciare l'eseguibile dal prompt del Dos, senza scomodare il debugger. | |||||||||
Lo scopo di G è quello di eseguire in blocco un certo numero di istruzioni, per poi proseguire passo-passo con il comando T o con il comando P; per fare questo è sufficiente aggiungere un indirizzo dopo la G, confermando con Invio; il programma sarà eseguito fino al punto indicato. | |||||||||
La sequenza di
azioni consigliata per la ricerca di malfunzionamenti è
frutto dell'esperienza; personalmente seguo questo metodo:
|
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
6000 00 -n prova.com -l -u 1311:0100 B400 MOV AH,00 1311:0102 B003 MOV AL,03 1311:0104 CD10 INT 10 1311:0106 B400 MOV AH,00 1311:0108 CD16 INT 16 1311:010A B44C MOV AH,4C 1311:010C CD21 INT 21 1311:010E 0000 ADD [BX+SI],AL -g 10a AX=1C0D BX=0000 CX=000E DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=1311 ES=1311 SS=1311 CS=1311 IP=010A NV UP EI PL NZ NA PO NC 1311:010A B44C MOV AH,4C - |
|
Da questo momento si prosegue con il comando comando T, osservando con estrema attenzione i nuovi valori dei registri (soprattutto quello delle flag). |
|
Ti
posso consigliare un altro modo molto gratificante di eseguire
questo collaudo:
|
|
Quando utilizzi il comando G fai molta attenzione a specificare un indirizzo corretto, altrimenti rischi di mandare in crash il computer!! |
|
Capitolo 1 | DEBUG 20/22 | |||||||
48 di 60 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|