Sei sulla pagina 1di 7

BENEMRITA UNIVERSIDAD AUTNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIN

PRCTICA DE LABORATORIO No I

NOMBRE DE LA PRCTICA: COMANDOS BSICOS DE DEBUG( PARTE I)

OBJETIVO: APRENDER LOS COMANDOS BSICOS DE UN DEPURADOR DINMICO DESARROLLO DE LA PRCTICA: DEBUG "Bug" significa fallo, defecto en un programa; "debug" significa depurar (escrutar y eliminar fallos), "Debugger" (depurador). Sinopsis DEBUG.EXE es un e ecutable !ue, "asta #$$%, acompa&' a todas las (ersiones de )*+ D,*, a partir de la #.$, y de -indo.s. *e trata de una utilidad interacti(a de e/ploraci'n de ba o ni(el, pero !ue tambi0n puede utili1arse para ciertas funciones. 2or e emplo3 ensamblador a lengua e m4!uina. 2ara utili1arlo basta in(ocarlo desde )*+D,* o desde una (entana D,* de -indo.s. Op ion!s Una (e1 !ue el programa est4 en e ecuci'n, el indicador ("prompt") es un gui'n "+", indicando !ue el "*"ell" espera recibir 'rdenes. 5a opci'n m4s sencilla es la interrogaci'n ", cuyo resultado es una lista resumida de las opciones disponibles3

ensamblar 6 7direcci'n8 comparar 9 direcci'n de inter(alo (olcar D 7inter(alo8 escribir E direcci'n 7lista de (alores8 llenar : lista de inter(alos ir G 7;direcci'n8 7direcciones8 "e/ < (alor% (alor# entrada = puerto cargar 5 7direcci'n8 7unidad8 7primer>sector8 7n?mero8 mo(er ) direcci'n de inter(alo nombre @ 7nombre>ruta8 7lista>argumentos8 salida , byte de puerto proceder 2 7;direcci'n8 7n?mero8 salir A registrar B 7registrar8 buscar * lista de inter(alos seguimiento C 7;direcci'n8 7(alor8 desensamblar U 7inter(alo8 escribir - 7direcci'n8 7unidad8 7primer>sector8 7n?mero8 asignar memoria e/pandida X6 7Dp4ginas8 desasignar memoria e/pandida XD 7identificador8 asignar p4ginas de memoria e/pandida X) 75p4gina8 72p4gina8 7identificador8 mostrar estado de la memoria e/pandida X* 5a mayorEa de los comandos de #!$%& e ecutan una acci'n y (uel(en al indicador del s"ell, pero si es un comando largo, como puede ser mostrar un tro1o grande de c'digo, puede detenerse pulsando 9CB5+2ausa o interrumpirse con 9CB5+9 para (ol(er al s"ell. E''o'!s 9uando #!$%& no sabe interpretar un comando, muestra un mensa e de error y un indicador "(" deba o del sitio del comando donde est4 el error. Co)*n#os 9omencemos3 E+ o)*n#o ,-, : +* ins.'% i/n 0- 1op234 1op2540 #!6%!+6! +* s%)* 7 +* '!s.* ( !n 8!9*#! i)*+) #! +os #os op!'*n#os s%)inis.'*#os: Donde op% y op# significan operandos. 2ar4metros3 # n?meros "e/adecimales de F dEgitos (m4/imo)

Uso Besultado3 Gresultado>%H; Es la suma (Gop>%H I Gop>#H) Gresultado>#H; es la resta (Gop>%H + Gop>#H) E emplo3 +" $$$J $$$# $$$K $$$% +" $$$$ $$$% $$$% ::::, como se obser(a el resultado de la segunda operaci'n es ::::, !ue es el e!ui(alente en complemento a # de +% E+ o)*n#o ,R, : )%!s.'* o )o#i;i * '!&is.'os 2ar4metros3 7registro8 Besultado3 *i especificamos un registro, DEBUG nos permite modificar el contenido de ese registro, si no lo "emos especificado, presenta por pantalla el contenido de los registros principales del procesador, adem4s muestra la instrucci'n apuntada por 9*3=2

Begistro de flags3 @L U2 E= 25 @M @6 2, @9 Desbordamiento 2oner3 ,L Auitar3 @L

Direccion(reducci'nNincremento) poner3 D@ !uitar U2 =nterrupci'n(acti(arNdesacti(ar) poner3 E= !uitar3 D= *igno (negati(o N positi(o) poner3 @G !uitar3 25 9ero ( sE N no) poner3 MB !uitar3 @M 6carrero 6u/iliar ( sE N no ) poner3 69 !uitar3 @6 2aridad ( par N impar ) poner3 2E !uitar3 2, 6carreo (sE N no ) poner3 9O !uitar3 @9 E emplo %3 +r 6X;$$$$ BX;$$$$ 9X;$$$$ DX;$$$$ *2;::EE B2;$$$$ *=;$$$$ D=;$$$$ D*;#$FP E*;#$FP **;#$FP 9*;#$FP =2;$%$$ @L U2 E= 25 @M @6 2, @9 #$FP3$%$$ Q# X9<G DX,6X E emplo # 3 +r a/ 6X $$$$ 3$% +r 6X;$$$% BX;$$$$ 9X;$$$$ DX;$$$$ *2;::EE B2;$$$$ *=;$$$$ D=;$$$$ D*;#$FP E*;#$FP **;#$FP 9*;#$FP =2;$%$$ @L U2 E= 25 @M @6 2, @9 #$FP3$%$$ Q# X9<G DX,6X E+ o)*n#o ,E, ( !s 'i$i' !n )!)o'i* ) 2ar4metros3 Gdir>comien1oH 7lista de palabras a escribir8 Besultados3 *e escribe a partir de la direcci'n de memoria D*3Gdir>comien1oH la lista de palabras (dos dEgitos "e/adecimales) del segundo par4metro. *i no se especifica un segundo par4metro entonces DEBUG no permite introducir palabra a palabra los datos !ue !ueramos, a partir de la direcci'n D*3Gdir>comien1oH. 2odemos pasar a la palabra siguiente de memoria presionando la tecla E*269=,, cuando "ayamos terminado de introducir los datos !ue !ueramos, "ay !ue pulsar =@CB, E emplo3

+E %$$ #$FP3$%$$ KR.

E emplo # +E %$$ $$ $% $# + E+ Co)*n#o ,T,: .'*<* o !=! %.* p*so * p*so) 2ar4metros3 7G ;direcci'nH8; Direcci'n a partir de la cual se !uiere !ue se trace (,S,3 <6O AUE 2,@EB E5 T;T ) Gnum>instruccionesH ; @?mero de instrucciones !ue "ay !ue e ecutar Besultados3 se e ecutan las G@U)>instruccionesH instrucciones a partir de 9*3GdireccionH ( si se "a especificado GdireccionH ) o se e ecutan G@U)>instruccionesH a partir de 9*3=2, si no se especifica el par4metro G@U)>instruccionesH se e ecuta una ?nica instrucci'n E emplo3

E+ Co)*n#o ,>,: S*+i' #! #!$%& 2ara poder salir del programa es introduciendo el comando TAT

E ercicios %.+ =ntroducir el siguiente c'digo para la suma de # n?meros3 9'digo de )4!uina3 $%DP 6signar a 6X;K 6signar a BX;J 5:? =ntroducir el siguiente c'digo para la resta de # n?meros3 9'digo de )4!uina3 #Q:P 6signar a 6X;K 6signar a BX;J @:? =ntroducir el siguiente c'digo para la multiplicaci'n de # n?meros3 9'digo de )4!uina3 :UEJ 6signar a 6X;K 6signar a BX;J A:? =ntroducir el siguiente c'digo para la di(isi'n de # n?meros3 9'digo de )4!uina3 :U:J 6signar a 6X;P 6signar a BX;F B.+ Utili1ando los e ercicios del % al F realice un programa !ue genere secuencialmente la suma, resta, multiplicaci'n y di(isi'n, en ese orden, los (alores originales del registro 6X y BX son los !ue deseen. Una caracterEstica poco conocida, es !ue #!$%& puede aceptar entradas desde un fic"ero "*cript", !ue puede ser un simple fic"ero de te/to 6*9== en el !ue cada comando est0 separado del anterior por un =@CB,. Despu0s del ?ltimo, !ue debe ser una " >" para salir de #!$%&, es con(eniente de ar una lEnea en blanco pulsando =@CB, dos (eces. 5as lEneas pueden contener comentarios. 9ual!uier cosa a partir del car4cter punto y coma (C) "asta el final de la lEnea, ser4 ignorado. ; esto es un comentario B ; a!uE se mostrar4 algo... *uponiendo !ue tengamos un fic"ero "*cript" de nombre ,rdenes.t/t, puede ser utili1ado como entrada para #!$%& mediante un comando de redirecci'n en la siguiente forma3 DEBUG G ,rdenes.t/t 7Enter8

Cambi0n puede conseguirse !ue el programa redireccione la salida "acia un fic"ero !ue puede ser inspeccionado m4s tarde. 6un!ue tiene la dificultad de tener !ue traba ar "a ciegas", puede ser de utilidad en determinadas circunstancias. 2or e emplo, cuando se desea un (olcado de determinadas 1onas de la memoria. En el caso anterior podrEa obtenerse un fic"ero Besult.t/t con el siguiente comando3 DEBUG G ,rdenes.t/t H Besult.t/t 7Enter8 :=@.

Potrebbero piacerti anche