La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Pbn - 19 - 1 © Jaime Alberto Parra Plaza CLASE 19 BIBLIOTECAS Y ARCHIVOS DE INCLUSIÓN.

Presentaciones similares


Presentación del tema: "Pbn - 19 - 1 © Jaime Alberto Parra Plaza CLASE 19 BIBLIOTECAS Y ARCHIVOS DE INCLUSIÓN."— Transcripción de la presentación:

1 Pbn © Jaime Alberto Parra Plaza CLASE 19 BIBLIOTECAS Y ARCHIVOS DE INCLUSIÓN

2 Pbn © Jaime Alberto Parra Plaza Ya se ha visto que, para ayudar en la estructuración de un programa, están disponibles dos utilidades: procedimientos y macros. Sin embargo, esto no soluciona otro problema que continúa en los archivos grandes, y es que el tiempo que se requiere para su desarrollo aumenta exponencialmente ante un crecimiento lineal del programa:

3 Pbn © Jaime Alberto Parra Plaza Tamaño del Archivo Tiempo de Desarrollo Tiempo de Desarrollo de un Programa en función del Tamaño del archivo:

4 Pbn © Jaime Alberto Parra Plaza Esto se debe a que todas las actividades se tardan más en desarrollar para un archivo grande que para uno pequeño. En primer lugar, el tiempo de edición, ensamblaje, enlace y carga aumenta. En segundo lugar, el tiempo que gasta el programador para manipular, entender y depurar un programa grande también aumenta. Multiplicando estos factores aparece la alinealidad de la relación tiempo versus tamaño.

5 Pbn © Jaime Alberto Parra Plaza Se desea, entonces, hallar formas de reducir este tiempo. Para ello, se parte de las siguientes reflexiones: Manipular archivos pequeños es mejor y más rápido que manipular archivos grandes, tanto para la máquina como para las herramientas como para el programador.

6 Pbn © Jaime Alberto Parra Plaza No es inteligente reensamblar todo un archivo para detectar si una nueva línea de código es correcta. Lo correcto sería reensamblar sólo el procedimiento al cual pertenece. Ambas reflexiones llevan a deducir que la clave para optimizar el proceso de desarrollo consiste en fraccionar un programa grande y manejar cada porción con cierta independencia.

7 Pbn © Jaime Alberto Parra Plaza PROYECTO: El proceso de fraccionar un archivo grande en otros menores y trabajar con cada uno por separado se denomina proyecto. Aquí, el archivo fuente se divide en varios subarchivos y cada uno de ellos se ensambla para obtener un módulo, los módulos se fusionan para lograr el archivo ejecutable correspondiente al fuente original.

8 Pbn © Jaime Alberto Parra Plaza Archivo Ejecutable Archivo 1 Archivo 2 Archivo n... Módulo 1 Módulo 2 Módulo n... Gran Programa EnsamblajeEnlaceParticionado

9 Pbn © Jaime Alberto Parra Plaza La primera pregunta que surge es cómo partir el programa. Lo recomendable aquí es hacer que cada archivo contenga un grupo dado de procedimientos, en lo posible relacionados entre sí. Si tal archivo se le pasa al ensamblador, éste genera el archivo objeto correspondiente, que se conoce como un módulo.

10 Pbn © Jaime Alberto Parra Plaza Lo importante de este mecanismo es que el ensamble de un archivo que sea sintácticamente correcto se hace sólo una vez. El módulo obtenido queda entonces listo para enlazarse con otros módulos, de esta forma, el tiempo de ensamble se reduce, de ensamblar todo el proyecto a ensamblar sólo el módulo en el cual se está trabajando actualmente.

11 Pbn © Jaime Alberto Parra Plaza Para que esto funcione se requiere solucionar un nuevo problema: ¿Qué debe hacer el ensamblador cuando un procedimiento invoque a otro procedimiento que está en otro archivo?

12 Pbn © Jaime Alberto Parra Plaza Proyecto Archivo 1 Archivo k proc1 call proc2 proc2 proc1 call proc2 proc2

13 Pbn © Jaime Alberto Parra Plaza Dado que un procedimiento se identifica por su dirección de inicio, el ensamblador en realidad no necesita saber en qué archivo está el procedimiento llamado. Sólo necesita saber que en alguna parte existe. Es labor del enlazador ubicar su dirección real y remplazarla cuando genere el archivo ejecutable. Dos directivas del ensamblador ayudan a esta labor:

14 Pbn © Jaime Alberto Parra Plaza EXTRN Y PUBLIC: EXTRN = External. Indica que el elemento que sigue es declarado externamente al archivo. Aplicable a procedimientos y variables. PUBLIC = El elemento mencionado (procedimiento o variable) va a ser usado fuera del archivo en que se crea, es decir, es un elemento público.

15 Pbn © Jaime Alberto Parra Plaza EXTRN: Las variables y procedimientos externos deben declararse al comienzo del archivo indicando su tamaño (variables) o su alcance (procedimientos), siguiendo la sintaxis: EXTRNvariable:TAMAÑO EXTRNprocedimiento:ALCANCE

16 Pbn © Jaime Alberto Parra Plaza PUBLIC: Las variables o procedimientos que quieran hacerse públicos deben declararse como tales al comienzo del segmento al cual pertenecen, de la forma: PUBLICvariable PUBLICprocedimiento

17 Pbn © Jaime Alberto Parra Plaza Aplicado al ejemplo anterior, la convención sería: Archivo 1Archivo k EXTRN proc2:NEAR PUBLIC proc2 proc1 call proc2 proc2

18 Pbn © Jaime Alberto Parra Plaza La directiva EXTRN le dice al ensamblador que proc2 existe en alguna parte externa al archivo actual, así que suponga que existe y deje su dirección vacía para que sea llenada por el enlazador. La directiva PUBLIC instruye al ensamblador para que genere una tabla en el módulo objeto con las direcciones de todos los elementos declarados públicos. Dicha tabla será útil para que el enlazador pueda unir las partes.

19 Pbn © Jaime Alberto Parra Plaza EXTRN proc2:NEAR proc1 call proc2 call ??1 ??1 = proc2 proc2 PUBLIC proc2 proc2 = 125H:14H proc2 Labores que hace el Ensamblador:

20 Pbn © Jaime Alberto Parra Plaza Labores que hace el Enlazador: call ??1 ??1 = proc2 proc2 = 125H:14H proc2 call 125H:14H

21 Pbn © Jaime Alberto Parra Plaza El esquema dado es útil, pero adolece de dos inconvenientes: a. Debe recordarse cuáles son todos los procedimientos que son externos y declararlos como tales al inicio del archivo. b. El enlazador fusiona los módulos completos uno tras otro, ya sea que los procedimientos que existen en ellos se usen o no.

22 Pbn © Jaime Alberto Parra Plaza Archivos de inclusión y Bibliotecas: Ambos problemas se han ya solucionado y dan justamente título a esta conferencia: los archivos de inclusión y las bibliotecas.

23 Pbn © Jaime Alberto Parra Plaza Es un archivo tipo texto asociado con un módulo y que puede contener tres clases de información: Declaración de constantes. Declaración e implementación de macros. Declaración de procedimientos. ARCHIVO DE INCLUSIÓN:

24 Pbn © Jaime Alberto Parra Plaza La directiva INCLUDE instruye al ensamblador para que incluya o añada el contenido del archivo indicado al archivo actual antes de hacer el ensamblaje del conjunto. Normalmente, los archivos de inclusión se identifican con la extensión.INC.

25 Pbn © Jaime Alberto Parra Plaza A continuación se muestra un ejemplo donde aparecen los tres archivos fuentes típicos en un programa fragmentado en varios archivos: El archivo de inclusión (macros y prototipos de procedimientos) El archivo k fuente (código de los procedimientos del fragmento k-ésimo) El archivo de proyecto, donde se invocan los procedimientos

26 Pbn © Jaime Alberto Parra Plaza ; Archivo FILES.INC: ; Constantes TOTALMASKEQU *.* ;Macros fDIR MACRO MSK... ENDM ; Declaración de procedimientos disponibles EXTRNpDIR:NEAR

27 Pbn © Jaime Alberto Parra Plaza ; Archivo FILES.ASM: ; Hacer públicos los procedimientos PUBLICpDIR ; Código de los procedimientos pDIR PROCNEAR... pDIRENDP

28 Pbn © Jaime Alberto Parra Plaza ; Archivo MYPROJ.ASM: ; Incluir el archivo de definiciones INCLUDEFILES.INC ; Pueden invocarse las macros,... ;... usar las constantes declaradas... ;... y acceder a los procedimientos fDIRTOTALMASK

29 Pbn © Jaime Alberto Parra Plaza Algunos programadores equivocadamente colocan procedimientos dentro de los archivos de inclusión. Aunque esto no genera ningún error y produce archivos correctos, va en contra del propósito original de estos archivos, puesto que el ensamblador debe reensamblar el código de tales procedimientos constantemente. Al ubicarlos aparte de él tal reensamblaje no se requiere.

30 Pbn © Jaime Alberto Parra Plaza Esto equivale al error de ubicar funciones de C en los archivos cabecera invocados con la sentencia #include filename.h

31 Pbn © Jaime Alberto Parra Plaza Es un archivo similar a un módulo (código objeto) que, además, tiene una tabla donde se indica el nombre y la ubicación dentro del archivo de cada uno de los procedimientos que éste contiene. BIBLIOTECA DE PROCEDIMIENTOS:

32 Pbn © Jaime Alberto Parra Plaza Esa tabla, al ser usada por el enlazador, le permite añadir al archivo ejecutable sólo los procedimientos que se están usando en el proyecto actual. Ahora se muestra gráficamente la idea planteada:

33 Pbn © Jaime Alberto Parra Plaza LIBRARY.OBJ proc1 proc2 proc3 manejador de bibliotecas LIBRARY.LIB proc1=100 proc2=350 proc3=720 proc1 proc2 proc

34 Pbn © Jaime Alberto Parra Plaza EXTRN proc2:NEAR call proc2 call ??1 ??1 = proc2 MYPROJ.ASM MYPROJ.OBJ ensamblador

35 Pbn © Jaime Alberto Parra Plaza proc1=100 proc2=350 proc3=720 proc1100 proc2350 proc3720 call ??1 ??1 = proc2 Enlazador call proc2

36 Pbn © Jaime Alberto Parra Plaza Es común que el fabricante del ensamblador suministre una utilidad adicional para que el programador construya y dé mantenimiento a sus bibliotecas. MANEJADOR DE BIBLIOTECAS (LIBRARY MANAGER):

37 Pbn © Jaime Alberto Parra Plaza Las opciones comunes a estas utilidades suelen ser: + = añadir módulo a la biblioteca (también usado para crear una biblioteca nueva) - = borrar módulo de la biblioteca * = extraer módulo sin borrarlo -+ = remplazar un módulo existente -* = extraer módulo y borrarlo

38 Pbn © Jaime Alberto Parra Plaza PREGUNTA 19: ¿Cómo se utiliza el ensamblado condicional y qué opciones tiene?.

39 Pbn © Jaime Alberto Parra Plaza


Descargar ppt "Pbn - 19 - 1 © Jaime Alberto Parra Plaza CLASE 19 BIBLIOTECAS Y ARCHIVOS DE INCLUSIÓN."

Presentaciones similares


Anuncios Google