You are on page 1of 4

Lenguaje Ensamblador 2002

Rafael Silva

Manejo de Cadenas y Libreras.


Esta prctica utiliza el programa STRINGS.ASM un mdulo de 12 rutinas ASCIIZ para manejo
de cadenas. Hablamos de ASCIIZ cuando se utiliza como fin de cadena, tal como en el
lenguaje C, un cero en lugar de un $. En este ltimo caso hablamos de cadenas ASCII$. En
STRINGS.ASM las lneas de la 18 a la 29 dan la lista de los nombres de estos 12
procedimientos con una breve descripcin. STRINGS.ASM est pensado para ser utilizado
como un mdulo de librera, que debe ensamblarse por separado y despus enlazarse con
otro programa. No es un ejecutable por si mismo, requiere de un programa que utilice su
conjunto de rutinas o procedimientos. Para preparar la librera, primero debemos ensamblar

tasm strings
O si planeamos utilizar el Turbo Debugger para examinar los programas, con

tasm /zi strings


La diferencia es que utilizando la opcin /zi se aade informacin para el debug que hace que
el cdigo final sea mucho mayor, lo que requiere mayor memoria.
Despus de ensamblar obtendremos el strings.obj el cual vamos a poner en una librera, de la
siguiente forma.

tlib /E cadena -+strings


El programa tlib es un ejecutable que podemos encontrar dentro de cualquier producto de
Borland, por ejemplo del C++ Buillder. Nos sirve para generar libreras y darles
mantenimiento. La opcin /E almacena en la librera resultante un diccionario extendido que
ayuda a llevar a cabo ms rpido el enlazado de la misma, proveyendo al Turbo Link con

Lenguaje Ensamblador 2002

Rafael Silva

informacin adicional sobre los smbolos de la librera. Los comandos -+ le dicen al tlib que
reemplace cualquier versin previa del archivo objeto por el nuevo, por esta razn la primera
vez que agreguemos un archivo objeto recibiremos la leyenda nomarch not found in library,
lo cual es obvio puesto que no podemos reemplazarlo an.
En cualquier momento podremos seguir aadiendo otros archivos objeto en la librera,
llegando a tener libreras muy completas.
Adems de las rutinas del mdulo STRINGS, necesitamos otro mdulo (otro conjunto de
rutinas) para desplegar las cadenas y leer nuevas cadenas desde el teclado. Este segundo
mdulo llamado STRIO.ASM nos permitir experimentar ms fcilmente el mdulo anterior
STRINGS. De igual forma que hicimos anteriormente vamos a ensamblarlo con Turbo
Assembler y despus vamos a agregarlo a la librera CADENA.

tlib /E cadena -+strio


De igual forma, la primera vez que lo agreguemos vamos a tener el mensaje STRIO not

found in library, del cual haremos caso omiso.


En este punto vamos a tener dos mdulos en la librera: STRINGS y STRIO. Para ver una lista
de los smbolos en la librera podemos escribir.

tlib cadena, con


O podemos reemplazar con por prn para mandar la salida a la impresora. Inclusive puede
mandarse la salida a un archivo as.

tlib cadena, tempo.txt

Lenguaje Ensamblador 2002

Rafael Silva

En STRIO hay tres procedimientos.

StrRead, para leer una cadena ASCIIZ

StrWrite, para escribir una cadena ASCIIZ

NewLine, Inicia una nueva lnea de salida

Los primeros dos requieren que las cadenas se encuentren en la forma ASCIIZ, que es la
misma forma utilizada por el mdulo STRINGS. Las tres rutinas utilizan la entrada y salida
estndar del DOS, generalmente el teclado y monitor. Hay formas ms rpidas de desplegar
texto en la pantalla, pero por el momento esto es suficiente.
Los tres procedimientos son fciles de entender salvo por las lneas 18-22 que declaran una
estructura de datos, tema que an no cubrimosr, pero que no representa gran problema para
ustedes, que son muy chi...pocludos.
Finalmente el tercer programa que nos acompaa en esta prctica es ECHOSTR.ASM que
hace uso de los dos mdulos de la librera. Este programa lo ensamblamos as.

tasm echostr
O con la opcin /zi si queremos seguirlo con el Turbo Debugger. Despus debemos generar
un ejecutable enlazando al programa objeto la librera, as:

tlink echostr,,,cadena
Las tres comas le informan al Turbo Linker que CADENA es el nombre de una librera, ya que
la sintaxis para el Turbo Linker es:

tlink [opciones] arch_objetos, arch_ejecutable, arch_map, arch_libreras.

Lenguaje Ensamblador 2002

Rafael Silva

Para ejecutar el programa slo hay que escribir el nombre del ejecutable como siempre lo
hemos hecho, despus escribir cualquier cadena de caracteres y presionar Enter, para ver
como se despliega la misma cadena que se escribi. El ejemplo es muy sencillo pero pueden
agregarse ms opciones que aprovechen mejor los mdulos de la librera.

Ejercicios.
1. Documentar los mdulos y el programa en espaol.
2. Escribir un nuevo programa que utilice al menos 4 de las rutinas de STRINGS y las rutinas
de STRIO.
Finalmente, publica tus comentarios en el foro de la prctica

Entrega de la Prctica.
Plazo mximo: Mircoles 15 de noviembre a las 15:00.
Mandar a ensam03@yahoo..com.mx en un archivo anexo el fuente documentado.
Saludos.
Rafael Silva.

You might also like