1. 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.
2. 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
3. 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.
4. 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:
5. 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.