ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PROCEDIMIENTOS


Enviado por   •  16 de Junio de 2013  •  Tesis  •  3.281 Palabras (14 Páginas)  •  264 Visitas

Página 1 de 14

PROCEDIMIENTOS

Procedimiento. Conjunto de instrucciones que realizan una tarea -y preferentemente solo una- que se ha de utilizar en más de una ocasión pero se declara una sola vez en el código fuente.

Un procedimiento puede llamar a otro, y este a su vez a otro y así sucesivamente

El procedimiento se guarda en memoria cuando se ensambla y ejecuta y entonces puede ser llamado tantas veces como sea necesario, ahorrando espacio y facilitando el desarrollo de software gracias a que permite organizarlo.

Los procedimientos deben ser cortos, de no más de una o dos páginas.

Sus ventajas son:

1. Reducen la cantidad de código

2. Permiten organizar mejor el programa

3. Facilitan la depuración del programa

4. Facilitan el mantenimiento progresivo del programa.

Su desventaja es que reducen la velocidad de ejecución de los programas debido a la forma en que se ejecutan (cada vez que se llama a un procedimiento, el programa tiene que ir a buscarlo pues sólo se ha generado el código del mismo una vez).

Al momento de invocar a un procedimiento se guarda en la pila la dirección de la siguiente instrucción del programa para que, una vez transferido el flujo del programa y terminado el procedimiento, se pueda regresar a la línea siguiente del programa original. Tener esto presente si se usa la pila antes, durante y después de llamar al procedimiento

TIPOS DE PROCEDIMIENTOS

Existen dos tipos de procedimientos:

A) los intrasegmentos, que se encuentran en el mismo segmento de instrucciones, se declaran y se llaman dentro del mismo programa en ellos se almacena en la pila el valor de IP. También se les conoce como procedimientos internos también son llamados procedimientos locales.

B) Los intersegmentos, que pueden ser almacenados en diferentes segmentos de memoria, y en cuyo caso se almacena en la pila el valor CS:IP. Se les llama también procedimientos externos. Se declaran en módulos 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 públicos en el programa donde se encuentran y que sean llamados como externos en el programa donde serán usados. Se debe contar con las directivas de ensamble:

PUBLIC

Ppara declarar los procedimientos como públicos, y hacerlos disponibles para otros módulos.

PUBLIC nombre

EXTRN

Para indicar qué nombres se van a usar está fuera del programa.

EXTRN nombre:tipo

Si el nombre representa un dato, tipo es BYTE, WORC, DWORD, QWORD o TBYTE

Si el nombre representa una etiqueta, tipo es FAR o NEAR

Es conveniente poner las directivas EXTERN y PUBLIC antes que las instrucciones y las directivas que definen datos a fin de que el ensamblador sepa qué significan esos nombres especiales antes de que aparezcan en el programa.

Los procedimientos son producidos y llamados gracias a las directivas e instrucciones CALL, PROC, RET y ENDP.

CALL

Es una instrucción que sirve para llamar al procedimiento desde el programa principal y además guarda la dirección de retorno en la pila, es decir, la dirección de la instrucción que sigue al CALL, de manera que al terminarse la ejecución del procedimiento, el programa que lo llamó pueda continuar ejecutándose.

CALL nombre del procedimiento

Los CALL pueden ser cercanos o lejanos.

Los cercanos utilizan 16 bits, lo que les permite “saltar” en un rango de -32KB a +32KB. Se usan en ensambladores 8086 a 80286.

Los lejanos utilizan 32 bits y pueden “saltar” en un rango de -2GB a +2GB. Se utilizan en en esmbladores 80386 o posteriores.

Ejemplo de un programa principal llamando a un procedimiento:

; Programa principal

Instrucciones del programa principal

CALL nombre ;El procesador guarda en pila a IP* y Coloca en

IP el desplazamiento correspondiente al procedimiento

Instrucciones del programa principal

*Si es NEAR, guarda solo el offset, si es FAR, guarda la dirección completa.

PROC

Es una directiva que indica donde inicia el procedimiento, su formato es:

nombre PROC tipo

Tipos.

1. Los locales (PROC NEAR), serán usados por una tarea específica

2. Los globales (PROC FAR), pueden ser usados por todo el software.

Notas:

-Si no se especifica tipo, se usa el default NEAR

-DOS inicia un programa llamando al programa principal, por ello, éste siempre es FAR

-PROC puede además utilizar la aseveración USES, que le permite definir qué registros serán almacenados en la pila antes de correr el procedimiento. Esos registros serán recuperados al terminar el procedimiento. Ejemplo:

Nombre PROC NEAR USES AX BX SI DI

ENDP

Es una directiva que indica donde termina el procedimiento

Nombre ENDP

Nótese que nombre de PROC y de ENDP deben ser el mismo.

Se recomienda que cada procedimiento salve y recupere registros,

...

Descargar como (para miembros actualizados)  txt (20.2 Kb)  
Leer 13 páginas más »
Disponible sólo en Clubensayos.com