miércoles, 2 de julio de 2008

Set de Instrucciones. Mid Range PIC.

Las instrucciones de la arquitectura Mid Range PIC, albergan las siguientes características:

  • Las instrucciones son altamente ortogonales, es decir, casi todas las instrucciones puden usar cualquier operando.
  • 35 instrucciones de fácil uso.
  • Todas las instrucciones tienen la misma longitud, en esta arquitectura es de 14-bits, y todos los datos son de 8 o 11 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 14-bitFlags Afectados
addwf....f, d
W + f -> (d)
100 0111 dfff ffff
C, DC, Z
andwf....f, dW AND f -> (d)
1
00 0101 dfff ffff
Z
clrf..........f
f = 0
1
00 0001 lfff ffff
Z
clrw........-
W = 0
1
00 0001 0xxx xxxx
Z
comf.......f,dNOT f -> (d)
1
00 1001 dfff ffff
Z
decf........f, df -- -> (d)
1
00 0011 dfff ffff
Z
decfsz....f, df-- , salta si f = 0 -> (d)
1 (2)
00 1011 dfff ffff
Ninguno
incf.........f, df++ -> (d)
1
00 1010 dfff ffff
Z
incfsz.....f, df++ , salta si f = 0->(d)
1 (2)
00 1111 dfff ffff
Ninguno
iorwf......f, dW OR f -> (d)
1
00 0100 dfff ffff
Z
movf......f, dMover f -> (d)
1
00 1000 dfff ffff
Z
movwf....f
W -> (f)
1
00 0000 lfff ffff
Ninguno
nop..........-
Sin operación
1
00 0000 0xx0 0000
Ninguno
rlf............f, dRotar Izquierda f -> (d)
1
00 1101 dfff ffff
C
rrf...........f, dRotar Derecha f -> (d)
1
00 1100 dfff ffff
C
subwf....f, dW - f -> (d)
1
00 0010 dfff ffff
C, DC, Z
swapf....f, dMsb -> Lsb -> (d)
1
00 1110 dfff ffff
Ninguno
xorwf....f, dW XOR f -> (d)
1
00 0110 dfff 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 14-bitFlags Afectados
bcf...........f, b
f = 0 -> (b)
101 00bb bfff ffff
Ninguno
bsf...........f, bf = 1 -> (b)1
01 01bb bfff ffff
Ninguno
btfsc.......f, bSalta si f = 0
1 (2)
01 10bb bfff ffff
Ninguno
btfss.......f, bSalta si f = 1
1 (2)
01 11bb bfff 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 14-bitFlags Afectados
andlw........k
k AND W -> (W)
111 1001 kkkk kkkk
Z
addlw......kk + W -> (W)
1
11 111x kkkk kkkk
C, DC, Z
call.............kLLamar subrutina
2
10 0kkk kkkk kkkk
Ninguno
clrwdt.......k
Limipiar Wachtdog
1
00 0000 0110 0100
#TO, #PD
goto............k
Ir a k
2
10 1kkk kkkk kkkk
Ninguno
iorlw..........kk OR W
1
11 1000 kkkk kkkk
Z
movlw.......kk -> (W)
1
11 00xx kkkk kkkk
Ninguno
retfie........-
Fin de interrupción
2
00 0000 0000 1001
Ninguno
retlw.........kFin de subrutina, k -> (W)
2
11 01xx kkkk kkkk
Ninguno
RETURN
Fin de subrutina
2
00 0000 0000 1000
Ninguno
SLEEP.......-Entrar en Standby
1
00 0000 0110 0011
#TO, #PD
sublw......k
k - W -> (W)
1
11 110x kkkk kkkk
C, DC, Z
xorlw........kk XOR W -> (W)
1
11 1010 kkkk kkkk
Z




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

0 comentarios: