Sie sind auf Seite 1von 4

PROGRAMACION BASICA 2.

1 Herramientas Necesarias La programacin en lenguaje ensamblador, necesita al menos tres herramientas: un editor de texto para crear el archivo fuente, un compilador para convertirlo en archivo objeto (masm) y un enlazador (linker) para generar finalmente el programa ejecutable. Una cuarta herramienta sera el depurador y en caso necesario corregir el programa ejecutable. Se puede usar cualquier editor de texto, el compilador (llamado ensamblador ) es el MASM ( por Macro Assembler Microsoft) y el enlazador es el programa LINK. Al utilizar el editor de texto para crear el archivo, el archivo fuente es el archivo creado en lenguaje ensamblador que contiene todas las instrucciones en el formato del ensamblador). La extensin usada en ensamblador para el archivo fuente es .ASM. Este archivo es traducido por el MASM, generalmente como un archivo intermedio porque an no es ejecutable. El enlazador (LINKER) combina uno o ms archivos .OBJ para generar el archivo ejecutable, cuya extensin es .EXE (o tambin puede ser .COM, dependiendo de la forma que se ensamblo).

Utilizacin del MASM Una vez creado el archivo fuente, es necesario que pase por el MASM para generar el archivo intermedio (formato OBJ). El comando para ello es el MASM archivo; seguido por la tecla [Enter]. MASM es el nombre del macro ensamblador, archivo es el nombre del programa (sin extensin), y el signo; le especifica al MASM que ensamble directamente el programa. Ejemplo: MASM Prueba; Suponiendo que el nombre del programa sea prueba. Si se omitiese el punto y coma, MASM respondera con lo siguiente: Source filename [.ASM] Prueba [Enter] Object filename [prueba.obj] [Enter] Source listing [NUL.LST] [Enter] Cross-reference [NUL.CRF] [Enter] Masm pondr entre corchetes la respuesta que considere correcta. La opcin Source Listing (listado fuente ) permite generar un archivo que contendr lnea por lnea el cdigo mquina (en notacin hexadecimal) generado y la lnea de su cdigo fuente, Tambin contiene informacin adicional, por ejemplo los smbolos usados en el programa y los diferentes segmentos. El nombre NUL.LST usado por MASM indica que usted no desea dicho listado. La opcin Cross-reference (referencias recprocas) contiene informacin sobre cada smbolo de su cdigo fuente, mostrando el nmero de lnea donde fue declarado y todas las lneas que hacen referencia a l. De nuevo, el nombre NUL.CRF indica que tampoco desea generar dicho listado. Todo parmetro va despus del smbolo "/". Es posible utilizar varios parmetros a la vez. Una vez tecleados todos los parmetros se escribe el nombre del archivo a ensamblar. Por ejemplo, si queremos que el MASM ensamble un programa llamado prueba, y adems deseamos que

despliegue el numero de lneas fuente y smbolos procesados (eso lo realiza con el parmetro /v), y si ocurre un error que nos diga en que lnea ocurri (con el parmetro /z), entonces tecleamos: MASM /v /z prueba; Cuando se usa el code view para visualizar, ejecutar y depurar un archivo, se debe ensamblar el archivo fuente, de la siguiente forma: MASM /zi prueba; Usando el enlazador (linker) El MASM traduce (ensambla) el archivo de cdigo fuente a otro de formato .OBJ. Sin embargo, MS-DOS no puede ejecutar este ltimo archivo. Primero es necesario pasar el archivo .OBJ por otro proceso que definir muchos detalles y generar el archivo ejecutable; dicho proceso es realizado por el Enlazador. El comando para invocar al enlazador, tiene similitud con el que se usa para invocar al MASM. Simplemente digite LINK archivo + (otros archivos .OBJ o libreras ); por ejemplo, el comando Link prueba; generar el archivo PRUEBA.EXE. Para ampliar el concepto anterior, suponga que tiene dos archivos con extensin .OBJ: prueba1.obj y prueba2.obj y que adems desea mezclar los dos archivos anteriores con una biblioteca de grficos llamada bibliogr.lib. Usando el enlazador para generar el programa ejecutable, se utilizar el siguiente comando: Link prueba1 + prueba2 + bibliogr; Tome en cuenta que en la lnea para comandos, el primer archivo siempre debe ser el principal; es decir, el que controlar la secuencia de eventos. El objetivo de enlazar todos los archivos .OBJ es poder generar un solo archivo ejecutable con la extensin .EXE. En el ejemplo anterior, se generar el archivo Prueba1.Exe. Otra forma de usar el link, si al momento de la llamada, no le ponemos punto y coma, se tendran las siguientes opciones. Link Prueba Object Modules [.OBJ]: Prueba [Enter] Run File [Prueba.Exe]: [Enter] Listing File [Nul.Map]: [Enter] Libraries [.LIB] Lib1, Lib2, ... El archivo Nul.Map, no se generar si tecleamos enter, este archivo, contiene un listado con el nombre de los segmentos, donde empiezan, donde terminan y cuanto miden, adems en que direccin de memoria empieza el programa. Cuando se ensambla el archivo, para ser utilizado por el code view, se debe enlazar de la siguiente forma: Link /co prueba; 2.2 Como se ejecutan los programas en dos Los programas con extensin .COM y .Exe, tienen una estructura diferente, al momento en que estos programas se ejecutan, el sistema operativo, crea una estructura que se almacena en memoria llamada PSP (Program Segment Prefix) de 256 bytes de tamao, esta estructura contiene alguna de la siguiente informacin: DESPLAZAMIENTO 00H TAMAO EN BYTES 2 CONTENIDO Llamada a la interrupcin 20H

02H 0AH 0EH 12H 80H 81H

2 4 4 4 1 127

Memoria total en prrafos Direccin se salida Direccin del manejador Ctrl-C Direccin del manejador de errores Longitud de lnea de comandos Lnea de comandos

Los primeros 128 bytes tienen informacin sobre el programa y los otros sobre la lnea de comandos. La interrupcin 20H hace que el programa se regrese al sistema operativo al termino del mismo. La memoria total en prrafos, es la cantidad de memoria que necesita el programa para ejecutarse, un prrafo, es igual a 16 bytes. La lnea de comandos es la lnea que se teclea al momento de ejecutar un programa, esta se almacena a partir de la direccin 127, por ejemplo, si tecleramos en la lnea de comandos (A:\>) : A:\> dir / p En la direccin 80H habr un 6 81H = d 82H = i 83H = r 84H = 85H = / 86H = p El manejador Ctrl-C sirve para que al momento de la ejecucin detenemos un programa utilizando Ctrl-C, se activa y se regresa al sistema operativo. La interrupcin 12H se utiliza cuando se termina el programa por un error La estructura del PSP, se crea cuando se ejecuta un programa .COM o .EXE, pero en realidad, estos tipos de programas son diferentes, veamos cuales son esas caractersticas: Programas tipo COM Los programas .COM tienen que estar en un solo segmento y no pueden ser mayores a 64 KB de memoria, al momento que se ejecuta un programa .COM, el registro IP siempre apunta a la direccin 0100H, que es 256 en decimal. Adems todos los programas .COM, tienen una pila, que nicamente es de 2 bytes de tamao, la cual se utiliza nicamente para almacenar la direccin de retorno, entonces, si restamos a 65536 que es lo mximo que puede medir un segmento, por lo tanto, un programa .COM, los 256 bytes del PSP, y los 2 bytes de la pila, tenemos 65278 bytes, que es la cantidad real en bytes que puede medir un programa de tipo .COM.

Programas EXE Los programas EXE, pueden contener uno o ms segmentos, ya sea de datos, de cdigo, y adems de un segmento de pila, este tipo de programas, pueden comenzar en cualquier direccin, y esto se indica a travs del registro IP, dentro de estos programas, existe una cabecera, que contiene toda la informacin sobre el programa, por ejemplo, el nmero de segmentos, donde

comienzan, etc. Al momento de que se empieza a ejecutar un programa EXE, los registros DS, y ES apuntan al PSP, el registro CS apunta al cdigo, y el registro SP al segmento de pila.

El sistema Operativo, diferencia a un programa EXE y uno COM, tomando los dos primeros bytes de la cabecera, y si estos son iguales a 5A4DA, entonces este es un programa .EXE, y si esto no se cumple, entonces es un programa tipo COM. 2.3 Formato de un programa Los programas en ensamblador, pueden ser de dos tipos, uno, que es un formato interno, el cual se utiliza en la creacin de programas dentro del debug, y un formato externo, el cual se utiliza en la creacin de programas fuentes, que despus se ensamblaran, enlazaran, y despus se ejecutaran, sin necesidad del debug. Todas las instrucciones en ensamblador, ya sea en formato interno, o en formato externo, tienen la forma: [Etiqueta]: Nemonico Operando [;Comentario] En donde, la etiqueta y los comentarios son opcionales. Veamos en que consiste cada parte. Las etiquetas, no deben tener ms de 31 caracteres, pueden contener letras y nmeros, o cualquiera de los caracteres @, $,=, _ y ?, deben empezar con una letra, @ o _. Los nemonicos es el nico que obligatoriamente debe estar en una sola lnea, y en realidad, un nemonico es una instruccin en ensamblador. Los operandos dependen del nemonico, y pueden ser ninguno, uno o varios operandos, estos nicamente pueden tener hasta 31 caracteres, y estos pueden ser variables, registros, direcciones de memoria, etc. Los comentarios van despus del punto y coma, y sirven para hacer ms claro el funcionamiento de un programa o la explicacin de las instrucciones, en caso de que no exista comentario, no es necesario el punto y coma.

Das könnte Ihnen auch gefallen