Procedimientos Y Macros En Lenguaje Ensamblador

Páginas: 10 (2358 palabras) Publicado: 13 de noviembre de 2012
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 tantasveces 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 elflujo 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 mismoprograma 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 programadonde 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:



PUBLICPpara 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 lasdirectivas 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 programaprincipal 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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Macros Y Procedimientos En Lenguaje Ensamblador
  • Macros en ensamblador
  • Lenguaje ensamblador
  • Lenguaje Ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador
  • Lenguaje ensamblador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS