Está en la página 1de 5

INSTITUTO TECNOLOGICO DE NUEVO LEON

Instructor: Ing. Orlando Fernndez Garza

Materia: Lenguaje Ensamblador

Unidad 3: Modularizacin

Equipo # 4

Los procedimientos externos, a diferencia de los internos, se declaran en mdulos o programas separados al programa donde el procedimiento es llamado, en otras palabras, la llamada al procedimiento se encuentra en un programa y el procedimiento en otro. Para poder utilizar procedimientos externos, es necesario que sean declarados como pblicos en el programa donde sern usados. Este tipo de procedimientos permiten crear bibliotecas de funciones de ensamblador, permitiendo a su vez asemejarse ms a la programacin de alto nivel. Cuando se solicita la ejecucin de un programa, el cargador de programa del DOS utiliza este nombre de procedimiento como el punto de entrada para la primera instruccin a ejecutar. La directiva ENDP indica el fin de un procedimiento y contiene el mismo nombre que el enuncia PROC para permitir que el ensamblador relacione a los dos. Los procedimientos deben estar por completo dentro de un segmento, ENDP define el final de un procedimiento antes que ENDS defina el final de un segmento. Los beneficios de un programa en procedimientos son los siguientes: 1. Reduce la cantidad de cdigo, ya que un procedimiento comn puede ser llamado desde cualquier lugar en el segmento de cdigo. 2. Fortalece la mejor organizacin del programa. 3. Facilita la depuracin del programa, ya que los errores pueden ser aislados con mayor claridad. 4. Ayuda en el mantenimiento progresivo de programas, ya que los procedimientos son identificados de forma rpida para su modificacin. Para poder utilizar procedimientos externos, es necesario que sean declarados como pblicos en el programa donde se encuentran y que sean llamados como externos en el programa donde sern usados. Para lograr esto, Pass32 cuenta con tres directivas de ensamble: .PUBLIC para declarar los procedimientos como pblicos, .EXTERN para indicar que el procedimiento que se va a usar est fuera del programa y .INCLUDE para enlazar el programa que contiene los procedimientos con el programa que los llama. El siguiente programa muestra el uso de las directivas de inclusin. Primeramente, el archivo Proc2.ASM se modific para que su variable Cad1 fuera declarada como publica, el programa Proc3.ASM contiene la lnea .INCLUDE Proc2.ASM, lo cual indica al ensamblador que, en caso de que se soliciten datos, etiquetas o procedimientos externos, stos se busquen en el archivo incluido. Pass32 proporciona grandes facilidades para el manejo de procedimientos; en este caso, solamente Cad1 debe ser declarada como pblica, puesto que los procedimientos se buscan y anexan automticamente al programa que los llama si es que existen.

.COMMENT * Programa: Proc3.ASM Autor: Juan Carlos Guzmn C. Descripcin: Este programa ilustra la forma de utilizar procedimientos y datos externos en los programas por medio de las directivas de inclusin include y public. .MODEL TINY .INCLUDE proc2.ASM; Incluir el archivo proc2.asm ; el cual contiene la variable de cadena ; Cad1 y los procedimientos externos ; usados en este programa. .DATA Cad2 db 'Esta es una cadena de prueba 2...',13,10,'$' .CODE INICIO: ;Punto de entrada al programa Mov Dl,20 ;X=20 Mov Dh,10 ;Y=10 Call GotoXY ;GotoXY 20,10 Lea DX,Cad2 ;DX->Cad2 en Proc3.asm Call Imprime_Cad ;Imprime Cad2 Lea DX,Cad1 ;DX->Cad1 en Proc2.asm Call Imprime_Cad ;Imprime Cad1 Mov AX,04C00h ;Fin del programa Int 21h ; END INICIO END

.COMMENT

* Programa: Proc2.ASM Autor: Juan Carlos Guzmn C. Descripcin: Este programa ilustra la forma de utilizar procedimientos en los programas por medio de la instruccin Call y la forma de pasarles parmetros. .MODEL TINY .DATA .PUBLIC Cad1 db 'Esta es una cadena de prueba...',13,10,'$' .CODE INICIO: ;Punto de entrada al programa Mov DL,20 ;X=20 Mov DH,10 ;Y=10 Call Gotoxy ;GotoXY 20,10 Lea DX,cad1 ;DX->Cad1 Call Imprime_Cad ;Imprimir Cad1 Mov Ax,04C00h ;Terminar y regresar al dos Int 21h ; END INICIO

;********************************************************************* ;Procedimiento: GotoXY ;Descripcin: Coloca el cursor una posicin especifica de la pantalla ;Parmetros: Dl=X, Dh=Y ;********************************************************************* PROC GotoXY Xor Bh,Bh Mov Ah,02h Int 10h Ret ENDP GotoXY ;*********************************************************************** ;Procedimiento: Limpia_Pantalla ;Descripcin: Imprime una cadena de caracteres en la posicin del cursor ;Parmetros: La direccin de la cadena en DX ;*********************************************************************** PROC Imprime_Cad Mov Ah,09h Int 21h Ret ENDP Imprime_Cad END

También podría gustarte