Universidad Antonio Nariño

Aplicación Industrial de Micros
Código: 444405

 CAPITULO 3
 Técnicas en lenguaje ensamblador

3.1 Subrutinas y llamados

IMPORTANCIA DE LAS RUTINAS (*)

La mayoría de los microcontroladores incluyen en su repertorio de instrucciones algunas que permiten saltar a una rutina y, cuando se complementa su ejecución, retornar al programa principal

   El empleo de subrutinas aporta muchas ventajas entre las que se destacan las siguientes:
   1.   Se pueden escribir como subrutinas secciones de código y ser empleadas en muchos programas ( por ejemplo, la subrutina de exploración de un teclado ).

   2.   Dan a los programas un carácter modular, es decir, se pueden codificar diferentes módulos para usarlos en cualquier programa.

   3.   Se reduce notablemente el tiempo de programación, la detección de errores, usando repetidamente una subrutina.

   4.   El código es más fácil de interpretar, dado que las instrucciones de las subrutinas no aparecen en el programa principal. Solo figuran las llamadas CALLs.
 

LAS INSTRUCCIONES CALL Y RETURN (*)

La instrucción CALL ( llamada la subrutina) consigue que la ejecución del programa continúe en la dirección donde se encuentra la subrutina a la que hace referencia. Es similar a GOTO pero coloca en la pila la dirección de la siguiente instrucción que se debe ejecutar después de la CALL.

La subrutina  finaliza con la instrucción RETURN (Retorno de la subrutina) que retoma la dirección guardada en le pila y la coloca en el contador del programa PC continuando el flujo de control con la instrucción que sigue a la CALL.

En la familia PIC de gama media la pila tiene ocho niveles de memoria del tipo FIFO (primero en entrar, último en salir). Si se produce la llamada a una subrutina durante la ejecución de otra subrutina, la dirección de retorno de esta segunda es colocada en la cima de la pila sobre la dirección anterior. Esta segunda dirección es la primera en salir de la pila mediante la instrucción RETURN.

Con la pila de ocho niveles, una subrutina puede llamar a otra y ésta, a su vez, llamar a otra hasta un máximo de ocho. La gama baja sólo puede realizar dos llamadas de este tipo al poseer una pila de sólo dos niveles.

Las subrutinas deben colocarse al comienzo de las páginas debido a que el bit 8 del contador del programa es puesto a 0 por la instrucción CALL (o por cualquier instrucción que modifica el PC). Las subrutinas deben colocarse en la mitad inicial de las páginas (las 256 palabras).



* Tomado de: Microcontroladores PIC, la solución en un chip, Angulo y otros, Sección 5.1

  índice de capítulo 
1