domingo, 29 de junio de 2008

Set de Instrucciones. Baseline PIC.

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.
El repertorio de instrucciones, se puede dividir en tres partes.

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.

OperadorDescripciónCiclos de RelojOperador 12-bitFlags Afectados
addwf....f, d
W + f -> (d)
10001 11df ffff
C, DC, Z
andwf....f, dW 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, dNOT f -> (d)
1
0010 01df ffff
Z
decf........f, df -- -> (d)
1
0000 11df ffff
Z
decfsz....f, df-- , salta si f = 0 -> (d)
1 (2)
0010 11df ffff
Ninguno
incf.........f, df++ -> (d)
1
0010 10df ffff
Z
incfsz.....f, df++ , salta si f = 0 -> (d)
1 (2)
0011 11df ffff
Ninguno
iorwf......f, dW OR f -> (d)
1
0001 00df ffff
Z
movf......f, dMover 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, dRotar Izquierda f -> (d)
1
0011 01df ffff
C
rrf...........f, dRotar Derecha f -> (d)
1
0011 00df ffff
C
subwf....f, dW - f -> (d)
1
0000 10df ffff
C, DC, Z
swapf....f, dMsb -> Lsb -> (d)
1
0011 10df ffff
Ninguno
xorwf....f, dW 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.

OperadorDescripciónCiclos de RelojOperador 12-bitFlags Afectados
bcf...........f, b
f = 0 -> (b)
10100 bbbf ffff
Ninguno
bsf...........f, bf = 1 -> (b)1
0101 bbbf ffff
Ninguno
btfsc.......f, bSalta si f = 0
1 (2)
0110 bbbf ffff
Ninguno
btfss.......f, bSalta 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.

OperadorDescripciónCiclos de RelojOperador 12-bitFlags Afectados
andlw........k
k AND W -> (W)
11110 kkkk kkkk
Z
call.............kLLamar 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..........kk OR W
1
1101 kkkk kkkk
Z
movlw.......kk -> (W)
1
1100 kkkk kkkk
Ninguno
OPTION...-Cargar OPTION en registro
1
0000 0000 0010
Ninguno
retlw.........kFin de subrutina, k -> (W)
2
1000 kkkk kkkk
Ninguno
SLEEP.......-Entrar en Standby
1
0000 0000 0011
#TO, #PD
tris.............fCargar en registro tris
1
0000 0000 0fff
Ninguno
xorlw........kk XOR W -> (W)
1
1111 kkkk kkkk
Z




Nota: El carácter # significa señal negada.

0 comentarios: