6.4.5 También conviene saber
Este C asume la directiva #asm, a continuación de la cuál seguirá un trozo de
código en ensamblador. Para regresar a la programación en C deberemos incluir, tras la
secuencia de código, #endasm. Puede ver ejemplos editando cualquiera de las librerías,
sitas en el directorio Pic_lib. Podrá, a su vez, hacer referencia a los argumentos de la
rutina en la que esté el código mediante #0, #1 ... #n, siendo el número la posición del
argumento en la llamada a la rutina, comenzando por 0.
Las definiciones de constantes en ensamblador están en Pic_rt\16c84. _portA y
_portB, por ejemplo, referencian a esos puertos, así como eedata, eeaddr, eecon1 y
eecon2. También contiene macros como _push_, _pop_, _swap_, _swaps_, o _indr_,
que son usados internamente por el compilador. Puesto que manejan los cuatro registros
reservados para el C (estos son _primary, _secondary, _temp y _stackptr) no conviene
que los use si no los comprende muy bien, ya que podría alterar el buen funcionamiento
de su programa. Las direcciones de esto cuatro registros son 0x2f, 0x2e, 0x2c y 0x2b.
Procure no usarlos en su código en ensamblador.
Es posible generar una rutina específica de interrupción. El paso a seguir sería
editar el fichero Pic_rt\16c84 y alterar la línea:
interrupt jmp $
; set to your interrupt routine
Cambiándola por:
interrupt call RSI_
jmp $
A partir de ese momento bastará con que cree una rutina llamada RSI() para que
sea interpretada como de servicio de interrupción y ejecutada
91