Set de instrucciones para microcontroladores
SET DE INSTRUCCIONES RISC PARA MICROCONTROLADORES PIC MIDRANGE
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 deinstrucció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
incf
f,d
incfsz
f,d
decf
f,d
decfsz
f,d
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 wfrom f
substract w from literal
increment f
increment f, skip if 0
decrement f
decrement f, skip if 0
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
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
rotateright f, through carry
BIT GROUP
bcf
f,b
bsf
f,b
btfsc
f,b
btfss
f,b
bit clear in f
bit set in f
bit test in f, skip if clear
bit test in f, skip if set
CONTROL GROUP
clrwdt
sleep
nop
clear watchdog timer
go into sleep mode
no operation
BRANCH GROUP
goto
k
call
k
return
retlw
k
retfie
incfsz
f,d
goto address
call soubrutine
return from subrutinereturn with literal in w
return from interrupt
increment f, skip if 0
Resumen Set de instrucciones RISC. Microcontroladores PIC Midrange. Punto Flotante S.A.
2
decfsz
btfsc
btfss
f,d
f,b
f,b
decrement f, skip if 0
bit test in f, skip if clear
bit test in f, skip if set
OPERANDOS:
Los operandos pueden asignarse con las letras f, w, b, k, d. Cada letra tiene el significadosiguiente:
f: designa alguna localidad de memoria (file register), de alguno de los 4 bancos de los llamados “registros especiales”, o bien,
alguna de las localidades de memoria RAM.
w. designa el acumulador del microcontrolador.
b. designa alguno de los 8 bits del registro especial o localidad de memoria elegido.
k. designa una constante ó una dirección.
d. designa el destino en donde sealmacenará el resultado de la operación. Si d=0, el destino es el registro w. Si d=1, entonces el
destino es el registro ó localidad de memoria f.
Uso de la directiva EQU:
Dentro del archivo del programa fuente, es decir del programa escrito en lenguaje ensamblador, se puede, con ayuda de
la directiva EQU, definir previamente valores para la facilidad de su identificación. Algunas de las definicionesmás utilizadas son las
siguientes:
w
f
STATUS
RP1
RP0
EQU
EQU
EQU
EQU
EQU
H'0000'
H'0001'
H'0003'
H'0006'
H'0005'
PORTA
PORTB
TRISA
TRISB
PCLATH
EQU
EQU
EQU
EQU
EQU
H’0005’
H’0006’
H’0085’
H’0086’
H’000A’
Estas declaraciones, junto con las del resto de los registros, así como los bits individuales de cada registro, se almacenan
en un solo archivo quees parte de las librerías ya incluídas en el programa MPLAB-IDE, del cual se habla más adelante. Entonces, es
suficiente escribir, dentro del programa fuente en lenguaje ensamblador, la directiva: include ó el nombre del archivo
correspondiente al microcontrolador empleado.
Una vez establecidas estas equivalencias, podemos poner algunos ejemplos con instrucciones. Observe que, en todas
ellas...
Regístrate para leer el documento completo.