pic Jul. 2016 | Page 43

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