Beruflich Dokumente
Kultur Dokumente
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.
A Ensamblar instrucciones simblicas y pasarlas a cdigo mquina C Comparar D Mostrar el contenido de un rea de memoria E Introducir datos en memoria, iniciando en una localidad especfica F Llenar(lista de intervalos) G Correr el programa ejecutable que se encuentra en memoria I Entrada(puerto) L Cargar M Mover (direcciones de intervalos.) 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 mas registros S Buscar (lista de intervalos) T Rastrear la ejecucin de una instruccin U "Desensamblar "cdigo mquina y pasarlo a cdigo simblico W Escribir o grabar un programa en disco
En ingls
-? assemble A [address] compare C range address dump D [range] enter E address [list] fill F range list go G [=address] [addresses] hex H value1 value2 (Learn 2's Complement!) input I port load L [address] [drive] [firstsector] [number] Move M range address name N [pathname] [arglist] output O port byte proceed P [=address] [number] quit Q . . . . . . . . . (Learn this first!) register R [register] search S range list trace T [=address] [number] unassemble U [range] write W [address] [drive] [firstsector] [number]
La mayora de los comandos de debug ejecutan una accin y vuelven al indicador del shell, pero si es un comando largo, como puede ser mostrar un trozo grande de cdigo, puede detenerse pulsando CTRL-Pausa o interrumpirse con CTRL-C para volver al shell. Una caracterstica poco conocida, es que debug puede aceptar entradas desde un fichero "Script", que puede ser un simple fichero de texto ASCII en el que cada comando est separado del anterior por un INTRO.Cualquier cosa a partir del carcter punto y coma (;) hasta el final de la lnea, ser ignorado.
Debug es sin duda un programa antiguo pero de enorme potencial didctico para el principiante. Se trata de una utilidad interactiva de exploracin de bajo nivel, pero que tambin puede utilizarse para ciertas funciones. Por ejemplo, como un tosco traductor de sentencias ensamblador a lenguaje mquina. En especial si utiliza el comando W se puede borrar todo un disco duro con un simple comando errneo). Para utilizarlo basta invocarlo desde MS-DOS o desde una ventana DOS de Windows.
Comando R (Register)
Este comando nos permite examinar o modificar los contenidos de los registros internos de la CPU del 8086 La sintaxis es: -R [NOMBRE DE REGISTRO] .....nos despliega los contenidos del registro especificado -R ...............nos despliega los contenidos de todos los regisTros de la cpu
MEMORIA
0CD5
Segmento de Cdigo Segmento de Datos Segmento de Stack Segmento Extra Activos (64kbyte)
0000
Flags
FFFFFH
En este caso el comando solo muestra una lnea porque ha alcanzado el final de la memoria. Puede verse que la fecha de la BIOS del sistema ocupa las ltimas posiciones.
Si se ordena el volcado de una direccin, sin indicar ningn nmero de posiciones, por defecto se toma el valor 128 (8 filas de 16 posiciones). Si desea una cantidad distinta, hay que aadir una L ("Long") y el nmero de posiciones, hasta un mximo de 64 KB (FFFF).Los dos comandos que siguen son equivalentes (recuerde que 80 es el equivalente hexadecimal de 128): D FE00:0000 D FE00:0000 L 80 He aqu el resultado:
-E DS:200 ASCII
-D DS:200 204 0CDE:0200 41 53 43 49 49
Ejemplo: Para obtener el contenido del sector de arranque ("Master boot sector" MBR) de un disquete en A:, utilizaremos el comando: C:\WINDOWS>debug - L 100 0 0 1 -D 100 L 200 Se Desplegar el contenido del sector 0 del disco A, el de arranque
-L
La sintaxis para el prefijo N es: N [path-name]nombre-de-archivo
En ambos casos el contenido del archivo ser cargado en memoria y podr ser utilizado.
Comando S ("Search").
Existen dos sintaxis alternativas: S [direccin-de-inicio] [L longitud-a-explorar] [contenido-a-buscar] S [direccin-de-inicio] [direccin-final L] [contenido-a-buscar] El contenido a buscar debe darse en hexadecimal o entre comillas si es un texto ASCII. Por ejemplo: Se desea ver algunas caractersticas de la BIOS en un equipo IBM. Se que estos datos se alojan a partir de la posicin F000:0000 hasta el final de la memoria. Es decir, una longitud de 64 Kbytes (FFFF) a partir de la posicin de inicio, y que seguramente, los datos buscados estarn cerca de la identificacin de la propia BIOS (la cadena "IBM"). Por lo que utilizo la siguiente sintaxis: -S F000:0000 L FFFF "IBM"
Comando S ("Search").
y obtendramos la siguiente salida: F000:3A0C F000:3A70 F000:3B13 F000:4839 F000:48BA F000:492A F000:499A F000:4A0A con las direcciones donde se ha encontrado la ocurrencia buscada
El debug puede aceptar entradas desde un fichero "Script", que puede ser un simple fichero de texto ASCII en el que cada comando est separado del anterior por un INTRO. Despus del ltimo, que debe ser una "Q" para salir de debug, es conveniente dejar una lnea en blanco pulsando INTRO dos veces. Las lneas pueden contener comentarios. Cualquier cosa a partir del carcter punto y coma (;) hasta el final de la lnea, ser ignorado. ; esto es un comentario D ; aqu se mostrar algo... Suponiendo que tengamos un fichero "Script" de nombre Ordenes.txt, puede ser utilizado como entrada para debug mediante un comando de redireccin en la siguiente forma:
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin.[1] Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora.
Programa 1. Multiplicacin de dos nmeros "a" y "b" --------------------------------------------------Mtodo: Se suma a consigo mismo tantas veces como indique b El resultado se guarda en "sum" .BEGIN ini .DW 10 .DW 5 .DW 0
a: b: sum: ini:
load a(R0),R1 ; 10 -> R1 load b(R0),R2 ; 5 -> R2 addi R0,#0,R3 ; 0 -> R3 loop: subi R2,#0,R0 ; R2 positivo? ble fin ; Si <= 0, entonces FIN add R3,R1,R3 ; R3+10 -> R3 subi R2,#1,R2 ; R2-1 -> R2 br loop ; repetir bucle fin: store R3,sum(R0) ; R3 -> resultado .END