16. El set de instrucciones.
Existen un total de 35 instrucciones. Todas las instrucciones son palabras de 14 bits, divididas en dos partes: el código
de operación y el operando. Los operandos, pueden ser bytes o bits de memoria o registros. De esta forma se puede hablar de
instrucciones "orientadas a bytes" u "orientadas a bits".
Todas las instrucciones, con excepción de las que modifican el contenido del contador del programa (como son los
saltos y llamados a subrutina) se ejecutan en un ciclo de instrucción, es decir, 4 ciclos de reloj. Para un sistema funcionando a 4 Mhz,
cada instrucción se ejecuta en 1 microsegundo. Si la instrucción modifica el contenido del contador del programa, entonces el tiempo
de ejecución es de 2 ciclos de instrucción ó 2 microsegundos para el ejemplo a 4 Mhz. El grupo de 35 instrucciones es el siguiente:
MOVE GROUP
movf
f,d
movwf
f
movlw
k
clrf
f
clrw
swapf
f,d
ARITHMETIC GROUP
addwf
f,d
addlw
k
subwf
f,d
sublw
k
indf
f,d
incfsz
f
decf
f,d
decfsz
f
LOGIC GROUP
andwf
f,d
andlw
k
iorwf
f,d
iorlw
k
xorwf
f,d
xorlw
k
comf
f,d
rlf
f,d
rrf
f,d
BIT GROUP
bcf
f,b
bsf
f,b
btfsc
f,b
btfss
f,b
CONTROL GROUP
clrwdt
sleep
nop
BRANCH GROUP
goto
k
call
k
return
retlw
k
retfie
incfsz
f
decfsz
f
btfsc
f,b
btfss
f,b
move f
move w to f
move literal to w
clear f
clear w
swap nibbles in f
add w and f
add literal to w
substract w from f
substract w from literal
increment f
increment f, skip if 0
decrement f
decrement f, skip if 0
and w and f
and literal to w
inclusive or w and f
inclusive or literal to w
exclusive or w and f
exclusive or literal to w
complement f
rotate left f, through carry
rotate right f, through carry
bit clear in f
bit set in f
bit test in f, skip if clear
bit test in f, skip if set
clear watchdog timer
go into sleep mode
no operation
goto address
call soubrutine
return from subrutine
return with literal in w
return from interrupt
increment f, skip if 0
decrement f, skip if 0
bit test in f, skip if clear
bit test in f, skip if set
EVOLUPIC Bootloader 16F88 Punto Flotante, S.A. 2011
20