Modulos externos
Click here to load reader
-
Upload
alejandro-muniz -
Category
Documents
-
view
143 -
download
0
Transcript of Modulos externos
Equipo 1 María Guadalupe Olvera NolascoVerónica Patricia Pasillas GutiérrezLuz Angélica Sánchez Castruita
MODULOS EXTERNOS-Directivas para programas que usan varios módulos.
-Bibliotecas
MODULARIZACION Programación modular
• Productividad de un programa. • Divide en módulos, ejecuta una única actividad, se analiza, se codifica y se por
separado.
Problema
M1 M2 M3 M4
Consideraciones para formar un archivo .EXE (símbolos privados)
DIRECTIVAS PARA PROGRAMAS QUE USAN VARIOS MÓDULOS.
PUBLICSe usa para declarar símbolos públicos otro módulo accesará a ellos.
Sintaxis:PUBLIC nombre [, nombre]
(variable, etiqueta o constante numérica)
-Puede ponerse en cualquier parte del archivo fuente. -Estos símbolos van a ser usados en otro archivo en el cual no se han declarado.
Para indicarle al ensamblador que están declarados en otro módulo, usamos la directiva EXTRN.
Si el enlazador no encontró la declaración de los símbolos manejados como EXTRN, se enviará el siguiente mensaje: UNRESOLVED EXTERNALS nombre del símbolo.
Si un símbolo referenciado como PUBLIC en el módulo donde es declarado, en el módulo donde es usado deberá ser
referenciado como EXTRN.
Se emplea cuando un símbolo es usado en un módulo y no es declarado en él.
Sintaxis:
EXTRN nombre:tipo [, nombre:tipo]...
El tipo deberá ser el mismo dado al símbolo en el módulo donde es declarado. El tipo puede ser uno de los siguientes:
- El tipo PROC representa el tipo por default para un procedimiento.
- NEAR Es una etiqueta deberá declararse en el segmento de código desde el cual los símbolos son utilizados.
- FAR Es una etiqueta la cual puede ser declarada en cualquier parte del archivo fuente, es conveniente hacer la declaración en el segmento de código donde los símbolos son utilizados.
- El tipo ABS se usa para símbolos que representan números constantes declaradas.
BibliotecasUna biblioteca o librería es un archivo, normalmente con extensión .LIB la cual contiene 2 o mas módulos (.obj), estos módulos almacenan procedimientos los cuales realizan procesos específicos.
Algunos ejemplos de procedimientos almacenados en bibliotecas de C son:•Printf, fprintf,cprintf•Scanf,fscanf•Pow,gets,clrscr,gotoxy
Los módulos que se almacenan en las bibliotecas se encuentran en código maquina reubicable(.obj) que son unidos al archivo ejecutable en el momento del enlace, después de unir los módulos reubicables declarados en la línea de comandos.
En los lenguajes de alto nivel, se proveen mecanismos para que ciertas bibliotecas (normalmente las que contienenfunciones o procedimientos de E/S y de uso común) sean llamadas de manera implícita al realizar el enlazado.
El manejador de bibliotecas nos permite reunir en un solo archivo modulos reubicables que previamente ya estan compilados o ensamblados.La ventaja que tiene una librería es que al momento de hacer el enlace solo llama de la biblioteca, los procedimientos que estamos utilizando en nuestro programa.El manejador de bibliotecas nos permite:
Crear un nuevo archivo de biblioteca.1.- Sumar modulos a una biblioteca ya existente.2.- Borrar modulos.3.- Reemplazar modulos.4.- Sacar modulos de una biblioteca como archivos .obj
Sintaxis:LIB lib_vieja [opciones] [comandos] [,arch_list] [,[lib_nuev]] [;]donde:
lib_vieja: es una librería que ya existe a la que queremos hacerle modificaciones. Si aun no existe se crea, y automaticamente toma extencion .LIBOpciones: son alternativas usadas para modificar o crear una librería./?: Ayuda en línea./HELP Ayuda en pantalla./IGNORECASE No considera Mayúsculas/Minúsculas.Comandos: Nos definen las acciones a realizar sobre la librería.+ Suma un modulo a la librería.- Borra un modulo de la librería.-+ Reemplaza un modulo de la librería.
Sintaxis:LIB lib_vieja [opciones] [comandos] [,arch_list] [,[lib_nuev]] [;]
donde:arch_list: Crea un archivo, el cual contiene los nombres y simbolos publicos almacenados en la librería.
Lib_nuev: Especifica un nuevo nombre para una librería.