Modulos externos

11

Click here to load reader

Transcript of Modulos externos

Page 1: 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

Page 2: Modulos externos

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)

Page 3: Modulos externos

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.

Page 4: Modulos externos

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.

Page 5: Modulos externos

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:

Page 6: Modulos externos

- 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.

Page 7: Modulos externos

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

Page 8: Modulos externos

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.

Page 9: Modulos externos

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

Page 10: Modulos externos

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.

Page 11: Modulos externos

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.