Vous êtes sur la page 1sur 31

m DEBUG de DOS

m Permite visualizar la memoria, introducir


programas en ella y rastrear su ejecución.

m DEBUG. Es utilizado para probar y depurar


programas ejecutables.

m CARACTERÍSTICA: el código del programa y los


datos los muestra en formato hexadecimal.
m CARACTERÍSTICA: el código del programa y los
datos los muestra en formato hexadecimal.

m Ejecuta programas en p   

, de
manera que se pueda ver el efecto de cada
instrucción sobre las localidades de memoria
m A ensambla instrucciones simbólicas y
pasarlas a código máquina
m D mostrar el contenido de un área de memoria
m E introducir datos en memoria, iniciando en
una localidad específica
m G correr el programa ejecutable que se
encuentra en memoria
m N nombrar un programa
m P ejecutar un conjunto de instrucciones
relacionadas
m  salir de la sesión con DEBUG
m R mostrar el contenido de uno o más registros
m T rastrear la ejecución de una instrucción
m U ³desensamblar´ código máquina y pasarlo
a código simbólico
m W escribir o grabar un programa en disco
m No distingue entre minúsculas y mayúsculas
m Se introduce un espacio sólo donde sea necesario
separar parámetros en un comando

m Los tres ejemplos siguientes utilizan el comando


D para mostrar la misma área de memoria,
iniciando en el desplazamiento 200H en el
segmento de datos (DS)
£ D DS:200
£ DDS:200
£ dds:200
m Segmento : desplazamiento

m DEBUG supone que todos los números están en


formato hexadecimal
m Consiste en tres parte
m Izquierda. Dirección hexadecimal del último byte
de la izquierda que se despliega en la forma
segmento : desplazamiento
m Centro. Es la representación en ASCII de los
bytes que contienen caracteres desplegables.

Dirección |Ñèè representación hexadecima èèÑ|Ñè ASCII èÑ|

Xxxx:xx10 xx««««xxèxx««««xx x««««x


Xxxx:xx20 xx««««xxèxx««««xx x««««x
m Cada línea despliega 16 bytes de memoria.
m La dirección de la izquierda se refiere sólo al
último byte de la izquierda,
segmento : desplazamiento

m El área de representación hexadecimal muestra


dos caracteres hexadecimales por cada byte,
seguidos por un espacio en blanco
m Un guión separa los segundos 8 bytes de los
primeros 8 bytes
m Cuando necesite localizar el byte en el
desplazamiento xx13H, inicie con xx10H y cuente
tres bytes sucesivos a la derecha
m Coloque el sistema en el directorio del disco duro que
contenga el DEBUG (DOS c:)

è DEBUG [enter]
è (è)

m Listo para recibir sus comandos

C:\>debug
è
m BIOS lo que tenemos instalado

m Una palabra del estado del equipo en el área de


datos del BIOS, ofrece una indicación
rudimentaria de los dispositivos instaldos

m Esta palabra está en las localidades 410Hè411H,


que se puede ver desde el DEBUG por medio de
una dirección de dos partes: 40 para la dirección
del segmento y 10 para el desplazamiento
m Lea la dirección 40:10 como segmento 40[0]H
mas un desplazamiento de 10H

D 40:10 [enter]

m El despliegue debe empezar

0040:0010 63 44 «««.
m En este ejemplo, los dos bytes en la palabra del
estado del equipo son 63 44.

m Invierta los bytes (44 63) y conviértalos a binario:


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1

ë     
15, 14 Número de puertos paralelos para la impresora conectados =1
(binario 01)
11è9 Número de puertos seriales conectados = 2 (binario 010)
7,6 Número de dispositivos de disco flexible = 2 (donde 00=1, 01=3,
10=3 y 11=4)
5,4 Modo inicial de video = 10 (donde 01=40 x 25 en color, 10 = 80 x
1225 en color y 11 = 80 x 1225 monocromático)
1 1 = coprocesador matemático está presente
0 1 = unidad de disco flexible está presente
m Examinar la cantidad de memoria que el DOS
³piensa´ que tiene instalada.

m Dependiendo del modelo, puede estar basado en


interruptores internos.

m El valor está en el área de datos del BIOS en las


localidades 413H y 414H
D 40:13 [enter]

m El despliegue empieza algo como:

0040:0013 .. .. .. xx xx . .

m Los primeros 2 bytes mostrados en el


desplazamiento 0013H son los kilobytes de
memoria en hexadecima
G    G      

    
00 02 02 00 512
80 02 02 80 640
m El número de serie de la computadora está
alojado en el ROM de BIOS en la localidad
FE000H

D FE00:0 [enter]

m Mostrará un número de 7 dígitos seguidos. El # de


serie se muestra como número hexadecimal,
mientras que la nota de derechos reservados es
más reconocible en el área ASCII a la derecha. D
[enter]
m La fecha inicia en la localidad FFFF5H. Mm/dd/aa

D FFFF:5 [enter]
m Después de la fecha, está la identificación del
modelo en la localidad FFFFEH o FFFF:E
    
F8 PS/2 modelos 70 y 80
F9 PC convertible
FA PS/2 modelo 30
FB PCèXT (1986)
FC PCèAT (1984), PCèXT modelo 286, etc
FE PCèXT (1982), portatil (1982)
FF Primera IBM PC
m 6  p  , datos definidos como parte de
una instrucción.
m Formato hexadecimal y en códigos simbólicos
£ MOV AX, 0123

m Mueve (copia) el valor 0123H al registro AX


      ë     


B82301 MOV ax, 0123
052500 ADD AX, 0025
8BD8 MOV BX, AX
03D8 ADD BX, AX
8BCB MOV, CX, BX
90 NOP No operación
DEBUG [enter]
E CS:100 B8 23 01 05 25 00 [enter]

m CS:100 indica la dirección de memoria inicial


m El siguiente E almacena 6 bytes, 106 107 108 109
10A 10B

E CS:106 8B D8 03 D8 8B CB [enter]
E CS:10C 2B C8 2B C0 90 [enter]
m R (registro)

m T (trace, rastreo)
èE CS:100 B8 23 01 05 25 00
èE CS:106 8B D8 03 D8 8B CB
èE CS:10C 2B C8 2B C0 90
èR
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1791 ES=1791 SS=1791 CS=1791 IP=0100 NV UP EI PL NZ NA PO NC
1791:0100 B82301 MOV AX,0123
èT

AX=0123 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=0103 NV UP EI PL NZ NA PO NC
1791:0103 052500 ADD AX,0025
èT

AX=0148 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=0106 NV UP EI PL NZ NA PE NC
1791:0106 8BD8 MOV BX,AX
èT

AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=0108 NV UP EI PL NZ NA PE NC
1791:0108 03D8 ADD BX,AX
èT

AX=0148 BX=0290 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=010A NV UP EI PL NZ AC PE NC
1791:010A 8BCB MOV CX,BX
èT

AX=0148 BX=0290 CX=0290 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=010C NV UP EI PL NZ AC PE NC
1791:010C 2BC8 SUB CX,AX
èT

AX=0148 BX=0290 CX=0148 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=010E NV UP EI PL NZ AC PE NC
1791:010E 2BC0 SUB AX,AX
èT

AX=0000 BX=0290 CX=0148 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000


DS=1791 ES=1791 SS=1791 CS=1791 IP=0110 NV UP EI PL ZR NA PE NC
1791:0110 90 NOP
m A causa de las diferentes versiones de DOS, el
contenido de algunos registros en su pantalla
pueden diferir de los mostrados anteriormente.
m El registro IP muestra IP=0100, indica la
instrucción donde inicia la ejecución.
NV UP EI PL NZ NA PO NC

m No desbordamiento,
m dirección hacia arriba (hacia la derecha),
m interrupción habilitada,
m signo positivo,
m no cero,
m no acarreo auxiliar,
m paridad impar,
m no acarreo
m El comando R muestra en el desplazamiento
0100H la primera instrucción que se ejecuta

xxxx:0100 B82301 MOV AX,0123

m xxxx indica el inicio del segmento de código


m Xxxx:0100 significa desplazarse 100H bytes
despues de la dirección del segmento CS
m D CS:100

m 

Vous aimerez peut-être aussi