4.4 Instrucciones de la gama baja
La gama baja carece de 4 de las instrucciones de la gama media. Estas son
ADDLW, RETFIE, RETURN y SUBLW. En cambio, y puesto que los registros
OPTION y TRIS no son accesibles, se añaden las dos siguientes:
OPTION Carga del reg. option
TRIS
Carga del registro TRIS
Sintaxis:
[label] OPTION
Operandos: Ninguno
Operación: (W) ⇒ OPTION
Flags afectados: Ninguno
Código OP:
0000 0000 0010
Sintaxis:
[label] TRIS f
Operandos: 5 ≤ f ≤ 7
Operación: (W)⇒ Registro TRIF
Flags afectados: Ninguno
Código OP: 0000 0000 0fff
Descripción: El contenido del registro W
se carga en el registro OPTION, registro
de sólo lectura en el que se configura el
funcionamiento del preescaler y el TMR0.
Descripción: El contenido del registro W
se carga en el registro TRISA, TRISB o
TRISC, según el valor de f. Estos
registros de sólo lectura configuran las
patillas de un puerto como de entrada o
salida.
Ejemplo: :
OPTION
Antes: W= 0x06, OPTION = 0x37
Después: W= 0x06, OPTION = 0x06
Ejemplo: :
TRIS PORTA
Antes: W=0xA5, TRISA=0x56
Después: W=0xA5, TRISA=0xA5
Observe que el código OP de las instrucciones de la gama baja sólo ocupan 12
bits, no correspondiéndose, por tanto, con el de la gama media.
Otras diferencias fundamentales entre ambas gamas son, por ejemplo, que en la
baja el vector de reset (la primera línea que se ejecuta tras un reset) es la última de la
memoria correspondiente, mientras que en la media es la 0x00. El vector de
interrupción (situado en la 0x04) no existe en la gama baja.
En la gama baja se necesita emplear los bits PA2-PA0 como parte alta de la
dirección de programa en las instrucciones CALL y GOTO.
Las páginas de la gama baja son más pequeñas, y se deben revisar todas las
escrituras de los registros OPTION, ESTADO y FSR en la conversión del código.
Por tanto, fácilmente comprobamos que el código entre ambas gamas no es 100%
compatible.
41