Las instrucciones de la arquitectura Baseline PIC, albergan las siguientes características:
- Las instrucciones son altamente ortogonales, es decir, casi todas las instrucciones puden usar cualquier operando.
- 33 instrucciones de fácil uso.
- Todas las instrucciones tienen la misma longitud, en esta arquitectura es de 12-bits, y todos los datos son de 8 o 9 bits.
- Para un reloj principal de 4 MHz, el tiempo de ejecución de la mayoría de las instrucciones es de 1 us, excepto las instrucciones de salto, que es de 2 us.
Operaciones de tamaño byte.
Son las denominadas, en anglosajón, Byte-Oriented Operations, consisten en las instrucciones que manejan registros y el lugar de almacenar la operación correspondiente, en un literal, denominado 'f', o en el registro de trabajo, llamado 'w'.
El set de instrucciones es el que se muestra en la siguiente tabla.
Operador | Descripción | Ciclos de Reloj | Operador 12-bit | Flags Afectados |
---|---|---|---|---|
addwf....f, d | W + f -> (d) | 1 | 0001 11df ffff | C, DC, Z |
andwf....f, d | W AND f -> (d) | 1 | 0001 01df ffff | Z |
clrf..........f | f = 0 | 1 | 0000 011f ffff | Z |
clrw........- | W = 0 | 1 | 0000 0100 0000 | Z |
comf.......f, d | NOT f -> (d) | 1 | 0010 01df ffff | Z |
decf........f, d | f -- -> (d) | 1 | 0000 11df ffff | Z |
decfsz....f, d | f-- , salta si f = 0 -> (d) | 1 (2) | 0010 11df ffff | Ninguno |
incf.........f, d | f++ -> (d) | 1 | 0010 10df ffff | Z |
incfsz.....f, d | f++ , salta si f = 0 -> (d) | 1 (2) | 0011 11df ffff | Ninguno |
iorwf......f, d | W OR f -> (d) | 1 | 0001 00df ffff | Z |
movf......f, d | Mover f -> (d) | 1 | 0010 00df ffff | Z |
movwf....f | W -> (f) | 1 | 0000 001f ffff | Ninguno |
nop..........- | Sin operación | 1 | 0000 0000 0000 | Ninguno |
rlf............f, d | Rotar Izquierda f -> (d) | 1 | 0011 01df ffff | C |
rrf...........f, d | Rotar Derecha f -> (d) | 1 | 0011 00df ffff | C |
subwf....f, d | W - f -> (d) | 1 | 0000 10df ffff | C, DC, Z |
swapf....f, d | Msb -> Lsb -> (d) | 1 | 0011 10df ffff | Ninguno |
xorwf....f, d | W XOR f -> (d) | 1 | 0001 10df ffff | Z |
Operaciones de tamaño bit.
Son las denominadas, en anglosajón, Bit-Oriented File Register Operations, consisten en las instrucciones tamaño bit de los registros y el lugar de almacenar la operación correspondiente, en un literal, denominado 'f', o en una dirección de memoria correspondoente al bit del registro, denominado 'b'.
El set de instrucciones es el que se muestra en la siguiente tabla.
Operador | Descripción | Ciclos de Reloj | Operador 12-bit | Flags Afectados |
---|---|---|---|---|
bcf...........f, b | f = 0 -> (b) | 1 | 0100 bbbf ffff | Ninguno |
bsf...........f, b | f = 1 -> (b) | 1 | 0101 bbbf ffff | Ninguno |
btfsc.......f, b | Salta si f = 0 | 1 (2) | 0110 bbbf ffff | Ninguno |
btfss.......f, b | Salta si f = 1 | 1 (2) | 0111 bbbf ffff | Ninguno |
Operaciones de de control y con literales.
Son las denominadas, en anglosajón, Literal And Control Operations, consisten en las instrucciones que manejan literales, constantes o etiquetas, denominadas 'k'.
El set de instrucciones es el que se muestra en la siguiente tabla.
Operador | Descripción | Ciclos de Reloj | Operador 12-bit | Flags Afectados |
---|---|---|---|---|
andlw........k | k AND W -> (W) | 1 | 1110 kkkk kkkk | Z |
call.............k | LLamar subrutina | 2 | 1001 kkkk kkkk | Ninguno |
clrwdt.......k | Limipiar Wachtdog | 1 | 0000 0000 0100 | #TO, #PD |
goto............k | Ir a k | 2 | 101k kkkk kkkk | Ninguno |
iorlw..........k | k OR W | 1 | 1101 kkkk kkkk | Z |
movlw.......k | k -> (W) | 1 | 1100 kkkk kkkk | Ninguno |
OPTION...- | Cargar OPTION en registro | 1 | 0000 0000 0010 | Ninguno |
retlw.........k | Fin de subrutina, k -> (W) | 2 | 1000 kkkk kkkk | Ninguno |
SLEEP.......- | Entrar en Standby | 1 | 0000 0000 0011 | #TO, #PD |
tris.............f | Cargar en registro tris | 1 | 0000 0000 0fff | Ninguno |
xorlw........k | k XOR W -> (W) | 1 | 1111 kkkk kkkk | Z |
Nota: El carácter # significa señal negada.
0 comentarios:
Publicar un comentario