Sei sulla pagina 1di 6

INFORME DE LABORATORIO #4

TUTORIAL PARA ENLAZAR LOS MACROS Y LIBRERAS.


1. OBJETIVO.
Realizar el programa por medio de libreras independiente del programa
principal.
Compilar el programa principal por separado, y los subprogramas tambin.
2. FUNDAMENTO TEORICO.
El objetivo de este documento es describir de una forma prctica cmo dividir un
programa ensamblador en archivos separados que pueden ser ensamblados por
separado y luego deben ser linkados para que formen una unidad ejecutable.
Est descrito desde la ignorancia terica de muchos aspectos y la experiencia
prctica de unos pocos.

Parto de que quiero escribir un programa ensamblador relativamente largo, por lo
que nos gustara poder trabajar con varios archivos separados, de manera que en
un archivo tenga el programa principal y en otros archivos las diversas rutinas
que se invocan desde ste. Podra, por ejemplo, separar las rutinas dedicadas a
los asuntos de pantalla en un archivo, las rutinas dedicadas a los asuntos de
procesamiento de datos en otro, etc.
En el ejemplo, nos hemos creado un archivo principal, quena.asm que se limita a
llamar a las subrutinas de lnea, circulo, raton y boton1 . Pero estas rutinas no
est en el actual archivo quena.asm sino en otros llamados lnea.asm,
circulo.asm , raton.asm y boton1.asm.
Con esto pretendemos conseguir que el flujo del programa comience ejecutndose
en este archivo quena.asm luego salte a ejecutar cdigo que est en los archivos
lnea, circulo, raton y boton1 y por ltimo regrese al programa principal
quena.asm para terminar.
En primer lugar, las etiquetas lnea, circulo, raton y boton1 no estn en el
archivo quena.asm, por lo que el ensamblador las va a echar de menos. Es por
eso que utilizamos la directiva EXTRN. Con esta directiva le indicamos al
ensamblador que esas etiquetas estn definidas en otro archivo, de
manera que el ensamblador esperar a el linkeado para resolverlas. Obsrvese
cmo hemos declarado ambas etiquetas detrs de la directiva, y que tras cada
etiqueta, separado por dos puntos hay un indicador: far. Estos indicadores son
obligatorios y nos indican que ambas etiquetas estn en otro segmento, por lo
que preparamos al ensamblador para que al construir la direccin de salto se
haga con una direccin de segmento y un desplazamiento (en el caso de que la
declaracin fuera near, el no hara falta ms que el desplazamiento puesto que se
asume que el segmento es el mismo del proceso actual, ya en CS).
A continuacin defino el segmento de datos y el de cdigo de la manera corriente
para realice lo que se pretende.
Como se puede verificar, al ejecutar este cdigo se invocar a circulo.asm
escribir en pantalla el Los huecos de la quena y luego salta a la etiqueta linea
y asi sucesivamente hasta realizar las tareas realizadas.
En estos archivo hemos vuelto a definir un segmento de datos y un segmento de
cdigos.
Aunque tienen los mismos nombres que en archivo quena.asm el ensamblador va
a saber distinguirlos como cosas distintas porque mantiene listas separadas de
smbolos. No va a ocurrir lo mismo con los smbolos definidos como PUBLIC y
EXTRN. Como se ve, en este archivo hemos definido como EXTRN la etiqueta
exit. Ello es porque dentro del cdigo escrito en este archivo saltamos a esta
etiqueta que est en el archivo quena.asm.
De nuevo estamos dicindole al ensamblador que no se preocupe si no encuentra
esta etiqueta dentro de este archivo, que seguro que est definida en otro lado,
como en efecto as nos hemos asegurado definiendo como PUBLIC esta etiqueta
en quena.asm.
COMO HACER CORRER EL PROGRAMA QUENA. ASM
Paso1. en el dosbox debemos entrar a la ruta del archivo especifico nosotros
como ejemplo lo pusimos en C:\Users\Intel\Desktop\L4\CM

PASO2. Luego se emsambla todos los archivos por separado en este caso
Masm raton.asm
Masm circulo.asm
Masm quena.asm
Masm linea.asm
Masm boton1.asm

Notamos que no importa el orden para emsamblar
Paso3. Luego procedemos a linkear los objetos de cada subprograma ensamblado
Link raton+quena+circulo+lnea+boton1

Nota el orden del link no importa como se muestra en la figura.
Paso 4
Ahora hacemos el correr el programa quena y tenemos linkeado los
subprogramas.
C:\Users\Intel\Desktop\L4\CM > quena (enter)

Resultado en pantalla


Para poder interactuar con la quena disponemos de dos interfacez de teclado y
mouse
Teclado: seleccionar con la tecla mayscula bloqueada (Bloq Mayus) la letra que
indica el hueco y presionar T para tocar y Esc para salir
Mouse: seleccionar un hueco en la quena y presionar el botn tocar para
escuchar el sonido

OTRO MTODO PARA COMPILAR EL PROGRAMA
Para compilar mas rpido y hacer correr el programa usamos un archivos por
lotes que nos ayuda a compilar linkear y ejecutar el programa mas rpido lo
aadimos y simplemente ponemos en la consola

Lo que hace el .bat es compilar por el orden que le pusimos dentro como
mostramos y lo podemos editar en un archivo de texto para hacer lo que
queramos para la compilacin

Podemos ver que empieza a compilar automticamente

Y podemos ver el resultado.


3. CONCLUSIONES.-
Se enlazo cada programa por separado como se detallo en el informe. Para
poder compilar cada uno se lo compila como programas independiente y el
momento de enlazar se pone LINK con cada programa + mas para poder
enlazarlos cada uno y de esta forma tener el programa final y hacerlo
correr con QUENA.
Es mejor tener los subprogramas por separados de esta forma el programa
principal se lo puede cambiar y o mejorar con solo cambiar los
subprogramas. De la forma que deseemos

Potrebbero piacerti anche