Clase10 ejemplos asm con tasm y tlink

5
GUÍA DE EJEMPLOS TASM Y TLINK Clase #18 1 UNIVERSIDAD CAPITAN GENERAL “GERARDO BARRIOS” COMPILADORES E INTÉRPRETES CICLO I DOCENTE: ING. MARVIN PARADA EJEMPLOS DE COMPILACION DE CODIGO ENSAMBLADOR USANDO TASM Y TLINK Antes de iniciar la realización de cualquier programa en Lenguaje Ensamblador debemos conocer algunos conceptos básicos. En este caso es primordial el software que utilizaremos para todo el proceso de realización de dichos programas. TASM El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado de herramientas de programación en lenguaje ensamblador para la familia de los microprocesadoresx86. Turbo Assembler también se refiere a un ensamblador común, basado en el microprocesador 6502 para el Commodore 64, creado por la compañía alemana Omikron en 1985. TLINK El enlazador o linkador permite combinar varios módulos objeto, realizando las conexiones entre ellos y, finalmente, los convierte en módulo ejecutable de tipo EXE (empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca automáticamente al linkador). El linkador permite el uso de librerías de funciones y rutinas. TLINK, a diferencia de LINK, permite generar un fichero de tipo COM directamente de un OBJ si se indica el parámetro /t, lo que agiliza aún más el proceso. Puede obtenerse ayuda ejecutándolo sin parámetros. Los parámetros de TLINK son sensibles a mayúsculas y minúsculas, por lo que /T no es lo mismo que /t. Un enlazador (en inglés, linker) es un programa que toma los ficheros de código objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s)biblioteca con lo que finalmente produce un fichero ejecutable o una biblioteca.. En el caso de los programas enlazados dinámicamente, el enlace entre el programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecución del programa. EDITOR DE TEXTO PARA EL CODIGO FUENTE Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto ó texto plano. Se utiliza para escribir el código fuente de los programas considerando que al guardarse no conserve la extencion txt, ya que debe cambiarse por la extensión asm. En el caso de Windows se usa el Block de Notas de Microsoft, en linus podemos usar gedit o nano. PROCESO DE COMPILACION CON TASM Y TLINK Para iniciar la compilación de los programas de ejemplo, debemos copiar los dos archivos ejecutables TASM.EXE y TLINK.EXE, dentro del directorio donde estarán los archivos de código fuente, en este caso podemos crear un directorio en la unidad C llamado CLASS18.

Transcript of Clase10 ejemplos asm con tasm y tlink

Page 1: Clase10 ejemplos asm con tasm y tlink

GUÍA DE EJEMPLOS TASM Y TLINK

Clase #18 1

UNIVERSIDAD CAPITAN GENERAL “GERARDO BARRIOS”

COMPILADORES E INTÉRPRETES CICLO I

DOCENTE: ING. MARVIN PARADA

EJEMPLOS DE COMPILACION DE CODIGO ENSAMBLADOR USANDO TASM Y TLINK

Antes de iniciar la realización de cualquier programa en Lenguaje Ensamblador debemos conocer algunos conceptos básicos. En este caso es primordial el software que utilizaremos para todo el proceso de realización de dichos programas.

TASM El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado de herramientas de programación en lenguaje ensamblador para la familia de los microprocesadoresx86. Turbo Assembler también se refiere a un ensamblador común, basado en el microprocesador 6502 para el Commodore 64, creado por la compañía alemana Omikron en 1985. TLINK El enlazador o linkador permite combinar varios módulos objeto, realizando las conexiones entre ellos y, finalmente, los convierte en módulo ejecutable de tipo EXE (empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca automáticamente al linkador). El linkador permite el uso de librerías de funciones y rutinas. TLINK, a diferencia de LINK, permite generar un fichero de tipo COM directamente de un OBJ si se indica el parámetro /t, lo que agiliza aún más el proceso. Puede obtenerse ayuda ejecutándolo sin parámetros. Los parámetros de TLINK son sensibles a mayúsculas y minúsculas, por lo que /T no es lo mismo que /t. Un enlazador (en inglés, linker) es un programa que toma los ficheros de código objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s)biblioteca con lo que finalmente produce un fichero ejecutable o una biblioteca.. En el caso de los programas enlazados dinámicamente, el enlace entre el programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecución del programa. EDITOR DE TEXTO PARA EL CODIGO FUENTE Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto ó texto plano. Se utiliza para escribir el código fuente de los programas considerando que al guardarse no conserve la extencion txt, ya que debe cambiarse por la extensión asm. En el caso de Windows se usa el Block de Notas de Microsoft, en linus podemos usar gedit o nano. PROCESO DE COMPILACION CON TASM Y TLINK Para iniciar la compilación de los programas de ejemplo, debemos copiar los dos archivos ejecutables TASM.EXE y TLINK.EXE, dentro del directorio donde estarán los archivos de código fuente, en este caso podemos crear un directorio en la unidad C llamado CLASS18.

Page 2: Clase10 ejemplos asm con tasm y tlink

GUÍA DE EJEMPLOS TASM Y TLINK

Clase #18 2

Con los archivos de código fuente y los ejecutables al iniciar el proceso de compilación, vamos al directorio y ejecutamos el comando que corresponda.

CODIGOS DE EJEMPLO, COMPILADO Y LINKADO

Page 3: Clase10 ejemplos asm con tasm y tlink

GUÍA DE EJEMPLOS TASM Y TLINK

Clase #18 3

Creamos el primer ejemplo llamado saludo.asm Entramos al símbolo del sistema (MS-DOS) nos direccionamos en donde se encuentra nuestra carpeta Una vez situados en la dirección correcta, nos dirigimos a compilar nuestro programa. Para la compilación se debe ejecutar la siguiente instrucción: tasm /zi saludo.asm Una vez compilado nos aparecerá un reporte, el cual nos muestra si hay errores en nuestras líneas de código.

Con esto se ah realizado la compilación de nuestro programa y está listo para ser ligado. Para linkar el programa. Esto lo haremos con la siguiente instrucción.

tlink /v saludo

El último paso es la ejecución del programa. Solo escribimos el nombre del programa, sin extensiones.

Saludo

Al ejecutarlo podemos comprobar que no se realiza acción alguna y que genera ciertos mensajes de

advertencia, es porque el programa solo tiene la estructura básica y no estamos indicando que realice una

acción determinada.

Los caracteres especiales /v y /z tiene la siguiente finalidad.

Page 4: Clase10 ejemplos asm con tasm y tlink

GUÍA DE EJEMPLOS TASM Y TLINK

Clase #18 4

/v Desplegar el número de líneas fuente y símbolos procesados.

/z Si ocurre un error que nos diga en que línea ocurrió

Corregir los errores en los siguientes programas para poder compilarlos:

Page 5: Clase10 ejemplos asm con tasm y tlink

GUÍA DE EJEMPLOS TASM Y TLINK

Clase #18 5

PARAMETROS DE TASM

/a y /s Seleccionan un orden alfabético o secuencial de los segmentos. /c Genera un listado de referencias cruzadas en un fichero de extensión CRF listo para ser procesado por CREF

(MASM) añadiendo además números de línea al listado, o bien incluye el listado de referencias cruzadas directamente dentro del listado del programa (caso de TASM). Las referencias cruzadas son un listado de todos los símbolos del programa, indicando los números de línea del mismo en que son definidos y referenciados.

/D De la manera /Dsímbolo[=valor] permite crear el símbolo indicado, cuya presencia puede comprobarse en el programa con una directiva IF (es útil para definir externamente un símbolo que indique que el programa está en fase de depuración, de cara a ensamblar cierto código adicional). Aunque /d (en minúsculas) es un obsoleto parámetro de MASM para obtener un listado de la primera pasada del ensamblador, MASM 4.0 es capaz de darse cuenta de que se pretende definir un símbolo con /d a menos que se indique solo /d.

/e Emula las instrucciones de punto flotante del 80x87, apoyándose en una librería al efecto. /Iruta Permite indicar el directorio donde el ensamblador debe de buscar los ficheros indicados en el programa fuente

con INCLUDE. /l[a] Con /l se genera un listado de ensamblaje y con /la un listado expandido. /m Con /m se indica el nivel de preservación del sentido de mayúsculas y minúsculas en los símbolos: /ml hace que

se consideres diferentes mayúsculas de minúsculas en todos los símbolos, /mx sólo con los símbolos globales y /mu hace que se mayusculicen todos los símbolos globales. Al ensamblar módulos para usar desde lenguaje C hay que indicar por lo menos /mx. En MASM 6.X se emplea /Cx en lugar de /mx, /Cp en lugar de /ml y /Cu en vez de /mu.

/n Suprime las tablas de símbolos en el listado. /p Verifica que el código generado para el modo protegido es correcto (al emplear la directiva para generar

instrucciones de modo protegido). /t Suprime los mensajes si el ensamblaje es correcto. /w Indica el nivel de advertencias: /w0 ninguna, /w1 sólo las serias y /w2 sólo consejos. /X Lista las condiciones falsas (ensamblaje condicional). /z Visualiza la línea del error y no sólo el número de la misma. /Zi Genera información simbólica para los depuradores de código. /Z dIncluye sólo la información del número de línea.