D E B U G § Es sencillo de usar y está disponible en cualquier parte § Usted puede empezar sin el conocimiento previo de un lenguaje ensamblador o de uno de programación. § El DOS viene con un programa llamado DEBUG que es utlizado para probar y depurar programas ejecutables. § Características de DEBUG: ›Despliega todo el código del programa y los datos en forma hexadecimal ›Permite ejecutar un programa en modo de paso sencillo (un paso a la vez), de manera que pueda ver el efecto de cada instrucción sobre las localidades de memoria y los registros.
COMANDOS DEL D E B U G A Ensamblar instrucciones simbólicas y pasarlas a código de máquina. D Mostrar el contenido de un área de memoria. E Introducir datos en memoria, iniciando en una localidad específica. G correr el programa ejecutable que se encuentra en memoria N Nombrar un programa P Proceder o ejecutar un conjunto de instrucciones relacionadas Q Salir del debug. R Mostrar el contenido de uno om as registros. T Rastrear la ejecución de una instrucción. U “Desensamblar” código de máquina y pasarlo a código simbólico. W Escribir o grabar un programa en disco.
REGLAS DEL DEBUG En DEBUG se especifica segmentos y desplazamietos con dos puntos (:) en la forma: segmento:desplazamiento 04BC
DESPLIEGUE DEL D E B U G Consiste en tres partes: 1.Dirección hexadecimal del último byte de la izquierda que se despliega en la forma de segmento:desplazamiento 2. El área amplia del centro es la representación hexadecimal del área desplegada 3. A la derecha está la representación en ASCII Dirección Representación hexadecimal ASCII
LIMITES DE LOS SEGMENTOS Un segmento inicia en un párrafo, que es por lo común una Dirección divisible por 16 dec. o 10H. En todos los casos, el último dígito hexadecimal de la derecha es 0 los diseñadores de computadora decidieron que sería innecesario almacerar el dígito 0 en el registro del segmento. Ejemplo: Suponga que un segmento de datos inicia en la localidad De memoria 045F0H, que se almacenará como 045F, con el cero de la extrema derecha sobreentendido.
VISUALIZACIÓN DE LOCALIDADES DE MEMORIA Comando D – Lista 8 líneas de 16 bytes cada una y Muestra su representación hexadecimal y ASCII. D 40:10 [enter] Por ejemplo: En el área de datos del BIOS, existe una palabra Que indica el estado del equipo, localizada en la dirección 410H y 411H. BITSDISPOSITIVO 15,14No. de puertos paralelos para impresora conectados 11-9No. de puertos seriales conectados=2 (binario 010) 7,6no. de dispositivos de disco flexible(00=1,01=2,10=3,11=4) 5,4 Modo inicial de video(01=40x25color, 10=80x1225color, 11=80x1225 monocromático) 11= coprocesaddor matemático presente. 0 1= unidad de disco flexible presente. Nota: Los bytes no citados no son usados.
INSTRUCCIÓN DECÓDIGO SIMBÓLICO MÁQUINA B82301MOV AX, ADD AX,0025 8BD8MOV BX,AX 03D8ADD BX,AX 8BCBMOV CX,BX 2BC8SUBCX,AX 2BC0SUB AX,AX 90NOP Las instrucciones de máuina puden tener 1,2 o 3 bytes de longitud. El primer byte es la operación real y los demás son operandos. Ejemplo:
EJERCICIOS -E error -E CS: B:0100 8B. 37 D
EJERCICIOS -d 179B:0100 0A 0F 56 8D 86 F6 FE A F B..V.....P.d._.F. 179B:0110 FF 7F C6 66 FF 76 FA 9A-8A 40 5F A 179B: A 00 6A 00 6A-00 9A F 09 0B C0 h..j.j.j..d._ B: E E A F 09 u.Wh..P.h...d._. 179B:0140 8B B B C E C.v..F...tg.F.&.< 179B: E 8D 86 F6 FE A 1B.t^.....P.Vh B:0160 AA 5F 01 8D 86 F6 FE E8 F6 FD 8D 86 F6 FE._......P B: E E8 D A 00 8D 86 F6 FE.P....Wh..j
--f cs:0100,0140 "hola mundo" -d cs: B: F 6C D 75 6E-64 6F 68 6F 6C D hola mundohola m 179B: E 64 6F 68 6F 6C D 75 6E 64 6F 68 6F undohola mundoho 179B:0120 6C D 75 6E 64 6F-68 6F 6C D 75 6E la mundohola mun 179B: F 68 6F 6C D-75 6E 64 6F 68 6F 6C 61 dohola mundohola 179B: B B C E C v..F...tg.F.&.< 179B: E 8D 86 F6 FE A 1B.t^.....P.Vh B:0160 AA 5F 01 8D 86 F6 FE E8 F6 FD 8D 86 F6 FE._......P B: E E8 D A 00 8D 86 F6 FE.P....Wh..j
-c cs: cs: B: C4 179B: B:0101 6F 5E 179B: B:0102 6C B: B: B: B: B: B:0105 6D FF 179B: B: B: B:0107 6E B: B: E 179B:0208 -
-s cs:0100,0120 "h" 179B: B:010A 179B: B:011E -
-a cs: B:0100 mov cx, B:0103 mov ax, B:0106 add al,01 179B:0108 loop B:010A -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=179B ES=179B SS=179B CS=179B IP=0100 NV UP EI PL NZ NA PO NC 179B:0100 B90000 MOV CX,0000
-r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=179B ES=179B SS=179B CS=179B IP=0100 NV UP EI PL NZ NA PO NC 179B:0100 B90000 MOV CX,0000 -t AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=179B ES=179B SS=179B CS=179B IP=0103 NV UP EI PL NZ NA PO NC 179B:0103 B80000 MOV AX,0000 -t AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=179B ES=179B SS=179B CS=179B IP=0106 NV UP EI PL NZ NA PO NC 179B: ADD AL,01 -t AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=179B ES=179B SS=179B CS=179B IP=0108 NV UP EI PL NZ NA PO NC 179B:0108 E2FC LOOP
-t AX=0001 BX=0000 CX=FFFF DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=179B ES=179B SS=179B CS=179B IP=0106 NV UP EI PL NZ NA PO NC 179B: ADD AL,01
-u cs: B:0100 B90000 MOV CX, B:0103 B80000 MOV AX, B: ADD AL,01 179B:0108 E2FC LOOP B:010A 68 DB 68
-f cs:0100,0140 "hola mundo" -d cs: B: F 6C D 75 6E-64 6F 68 6F 6C D hola mundohola m 179B: E 64 6F 68 6F 6C D 75 6E 64 6F 68 6F undohola mundoho 179B:0120 6C D 75 6E 64 6F-68 6F 6C D 75 6E la mundohola mun 179B: F 68 6F 6C D-75 6E 64 6F 68 6F 6C 61 dohola mundohola 179B: B B C E C v..F...tg.F.&.< 179B: E 8D 86 F6 FE A 1B.t^.....P.Vh B:0160 AA 5F 01 8D 86 F6 FE E8 F6 FD 8D 86 F6 FE._......P B: E E8 D A 00 8D 86 F6 FE.P....Wh..j
-m cs:0100L32 cs:0200 -d cs: B: F 6C D 75 6E-64 6F 68 6F 6C D hola mundohola m 179B: E 64 6F 68 6F 6C D 75 6E 64 6F 68 6F undohola mundoho 179B:0220 6C D 75 6E 64 6F-68 6F 6C D 75 6E la mundohola mun 179B: F 00 9A CE 4D 8F A DF 09 C4 5E do...M..P......^ 179B: F F6 47 0E D.f&....tT&.G..uM 179B:0250 FF D-46 CC A 32 9A C1.6..h...F..Pj B: DF 09 C4 5E C4-5F FF A ^.&._.&.w B: CF C 01-8D 86 A0 FE A RPh,......Pj.
NV UP EI PL NZ NA PO NC Esta configuración significa: No desbordamiento, direción hacia Arriba (derecha), interrupción habilitada, signo positivo, no cero, no acarreo auxiliar, paridad impar y no acarreo respectivamente. EL REGISTRO DE BANDERAS: