Sunteți pe pagina 1din 5

DEBUG Durante las primeras prcticas utilizaremos el programa DEBUG, el cual se puede ejecutar desde la lnea de comandos del

DOS. Este programa permite visualizar la memoria, introducir programas en ella y rastrear su ejecucin. Una caracterstica de DEBUG es que despliega todo el cdigo del programa y los datos en formato hexadecimal. Comandos de DEBUG. A Ensamblar instrucciones simblicas y pasarlas a cdigo mquina. D Mostrar el contenido de un rea de memoria. E Introducir datos en memoria, iniciando en una localidad especfica. 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 de la sesin con DEBUG. R Mostrar el contenido de uno o ms registros. T Rastrear la ejecucin de una instruccin. U "Desensamblar" cdigo mquina y pasarlo a cdigo simblico. W Escribir o grabar un programa en disco. Practica Nmero 1 Usando el comando D, para mostrar el contenido de la memoria 1.1 Verificacin del equipo del sistema Una palabra del estado del equipo en el rea de datos del BIOS, ofrece una indicacin rudimentaria de los dispositivos instalados. Esta palabra est en las localidades 410H-411H, que puede ver desde DEBUG por medio de una direccin de dos partes: 40 para la direccin del segmento y 10 para el desplazamiento desde la direccin del segmento. Teclea lo siguiente: D 40:10 [ Enter ] El despliegue debe empezar con algo como esto: 0040:0010 63 44 En este ejemplo, los 2 bytes en la palabra del estado del equipo contienen los valores hexadecimales 63 y 44. Invierte los bytes y convirtalos a binario: Bit : Respuesta 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

__ __ __ __ __ __ __ __

__ __ __ __ __ __ __ __

A continuacin est una explicacin del cdigo hexadecimal: BITS DISPOSITIVO 15,14 11-9 7,6 5,4 Nmero de puertos paralelos para impresoras conectados = 1 (binario 01) Nmero de puertos seriales conectados = 2 (binario 010) Nmero de dispositivos de disco flexible = 2 (donde 00 = 1, 01 = 2, 10 = 3 y 11 = 4) Modo inicial de video = 10 (donde 01 = 40 x 25 en color, 10 = 80 x 12 25 en color y 11 = 80 x 12 25 monocromtico) 1 1 = Coprocesador matemtico est presente 0 1 = Unidad de disco flexible est presente

1.2 Verificacin del tamao de la memoria (Localidades: 413H y 414H) Teclea: D 40:13 [ Enter ] Despliegue (depende de cada PC): 0040:0013 .. .. .. xx xx Los primeros dos bytes mostrados en el desplazamiento 0013H son los KB de memoria en hexadecimal, con los bytes en secuencia inversa. Ejemplo: HEXADECIMAL INVERSO HEXADECIMAL CORREGIDO VALOR DECIMAL. 00 02 02 00 512 80 02 02 80 640 1.3 Verificacin del nmero de serie y la nota de derechos reservados (Localidad: FE000H) La pantalla debe mostrar un nmero de serie de siete dgitos seguido, en mquinas convencionales, de una nota de derechos reservados. El nmero de serie se muestra como nmero hexadecimal, mientras que la nota de derechos reservados es ms reconocible en el rea ASCII a la derecha. La nota de derechos reservados puede continuar pasando sobre lo que ya est mostrado; para verla, basta con presionar D, seguida de la tecla Enter. 1.4 Verificacin de la fecha en el ROM BIOS (FFFF5H) La fecha de su ROM BIOS inicia en la localidad FFFF5H, registrada como mm/dd/aa. Para verla teclee: D FFFF:5 [Enter] El conocimiento de esta fecha puede ser til para determinar la edad y modelo de la computadora

1.5 Verificacin de la identificacin del modelo (FFFFEH) Teclea: D FFFF:E [Enter] CODIGO HEX. MODELO F8 PS/2 modelos 70 y 80 F9 PC convertible FA PS/2 modelo 30 FB PC-XT (1986) FC PC-AT, PC-XT modelo 286, PS/2 modelos 50 y 60, FE PC-XT (1982), porttil (1982) FF Primera IBM PC Jvenes ahora que ya saben cmo usar el comando para desplegar informacin, pueden ver el contenido de cualquier localidad de almacenamiento. Tambin pueden avanzar por la memoria con slo presionar D de forma repetida: DEBUG muestra de manera sucesiva 8 lneas, continuando a partir de la ltima operacin D. Para finalizar, tecleen Q (quit), para salir de DEBUG, o continen con la siguiente prctica

Practica Nmero 2 Como introducir un programa simblico en ensamblador El Comando A El comando A (Assemble, ensamblar) le dice a DEBUG que acepte instrucciones simblicas en ensamblador y las convierta a lenguaje de mquina. 2.1 Primeros pasos en ensamblador: a) Inicialicen la direccin de inicio en el segmento de cdigo con desplazamiento 100h para sus instrucciones como A 100H [Enter]. DEBUG muestra el valor del segmento de cdigo y el desplazamiento como xxxx:0100. b) Ingresen el siguiente programa: MOV AL, 25 MOV BL, 32 ADD AL, BL NOP [Enter] [Enter] [Enter] [Enter, Enter]

Nota: El segundo [Enter] de la ltima instruccin (NOP), indica a DEBUG que ya no hay ms instrucciones por ingresar. Al terminar DEBUG debe mostrar lo siguiente: xxxx:0100 MOV AL, 25 xxxx:0102 MOV BL ,32

xxxx:0104 ADD AL ,BL xxxx:0106 NOP c) Examinen el lenguaje mquina generado. Uso del comando U (unassemble, desensamblar), indicar a DEBUG las localidades de la primera y ltima instruccin que quiere ver, en este caso, 0100H y 0106 H. Tecleen: U 0100,0106 [Enter] Nota: 0100 indica en donde inicia el programa, y 0106 indica en donde est la ltima instruccin (xxxx:106 NOP) La pantalla debe mostrar columnas para la localidad, el cdigo de mquina y el cdigo simblico: xxxx:0100 B025 MOV AL,25 xxxx:0102 B332 MOV BL,32 xxxx:0104 00D8 ADD AL,BL xxxx:0106 90 NOP Ahora rastree la ejecucin del programa: Empiecen por introducir R para desplegar los registros y la primera instruccin, y despus T de manera sucesiva para rastrear las instrucciones subsecuentes. Cuando llegue a NOP de la localidad 0106H, presionen Q para salir de la ejecucin. 2.1 Uso de la instruccin INT Los tres ejemplos siguientes muestran cmo accesar el DOS y el BIOS para enviar informacin acerca del sistema. Para este fin se utiliza la instruccin INT (interrupcin), la cual sale de su programa, ingresa una rutina del DOS o de BIOS. Realiza la funcin solicitada y regresa a tu programa. En lugar de avanzar un solo paso, usaremos el comando P (Proced, proceder) de DEBUG para ejecutar toda la rutina de interrupcin. 2.1.1 Cmo obtener el nmero de versin del DOS La instruccin que entrega el nmero de versin es INT 21H del DOS, funcin 0030H; esto es, carguen 0030H en el registro AH y soliciten INT 21H. a) Ingresen el comando A 100 (de DEBUG ) b) Ingresen las instrucciones en ensamblador: MOV AH, 30 INT 21 NOP (seguido por un [enter] adicional)

Para rastrear la ejecucin de las instrucciones, primero ingrese R para ver los registros y T para rastrear MOV. En lugar de rastrear la instruccin INT, ingrese P (proced, proceder) para ejecutar toda la rutina del DOS. El proceso termina con la instruccin NOP. Ahora pueden ver en AL el nmero principal de la versin del DOS, como X en DOS X.20, y en AH el nmero secundario de la versin, como 14H (o 20) en DOS X.20. Presiona Q para salir. 2.1.2 Cmo obtener la fecha actual (INT 21h, funcin 2AH) El valor de la funcin debe ser asignado a: AH MOV AH, 2A INT 21 NOP Ingresa R para mostrar los registros, T para ejecutar MOV, y P (proced) para INT, la operacin se detiene en NOP. Los registros muestran esta informacin: AL : Da de la semana(0=Domingo) CX : Ao(en hexadecimal, por ejemplo, 07DH = 1997) DH : Mes (01 a 12) DL : Da del mes (01 a 31) Presione Q, para salir.

S-ar putea să vă placă și