Docente: Ing. Paúl Romero R. Ph.D.
REPERTORIO DE
INSTRUCCIONES RISC
◼Las Instrucciones son Rápidas y
Simples
◼Las instrucciones son
Ortogonales
◼La longitud de las instrucciones
y datos es constante
Ejemplo
Un Microcontrolador PIC que trabaja con un cristal de cuarzo de 10 MHz tarda 600 uS en ejecutar un
programa que tiene el 50% de instrucciones de salto.
a. De cuantas instrucciones se conforma el programa?
b. Cuantas posiciones ocupa el código en la M. de Programa?
[Link]=Xinstruc.*C.M
DATOS:
En el caso que todas las instruc. Sean normales.
Fosc=10 MHz
C.M=4CLK=4*Tosc
Tejec=600uS
T=1/Fosc
Ins. Salto=50%=500
T=1/10Mhz
[Link]=50%=500
T=100nS=0.1uS
Total Instrucc=X=?=1000
C.M=0.4us
No. Pos. Mem. Programa=1000
RESUMEN Xtotal=Xinst_normales+Xinst_salto
[Link] o de salto [Link]=Xinst_normales*C.M+Xinst_salto*2*C.M
ocupan la misma longitud de X=Xinst_normales= Xinst_salto
palabra. En gama media 14 600uS=X*0.4uS+X*2*0.4uS
bits. X=600uS/1.2us
[Link]=1 C.M X=500
[Link]= 2 C.M
TIPOS DE FORMATO
Las instrucciones de los PIC de la gama media, entre los que se encuentran los
modelos PIC 16X8X, tienen 14 bits de longitud. Dicho formato se divide en
diferentes campos de bits.
a. CAMPO DEL CODIGO OP
Los bits de este campo sirven para definir la operación que realiza la instrucción.
b. CAMPOS DE LOS OPERNADOS FUENTE(f) Y DESTINO(d)
Estos campos de bits definen los registros que actúan como operandos en la instrucción. Suelen
referenciar la dirección que ocupan en la memoria de datos.
c. CAMPO DE OPERANDO INMEDIATO O LITERAL (k)
Es un campo de bits que contiene el valor de un operando inmediato.
d. CAMPO DE REFERENCIA A UN BIT (b)
Suele ser un campo de 3 bits que indica la posición de un bit concreto dentro de un registro de 8
bits.
e. CAMPO DE DIRECCIÓN DE SALTO
En las instrucciones de salto CALL y GOTO hay un campo de bits que contiene la dirección de la
siguiente instrucción que hay que ejecutar. Dicho campo de bits se carga en el PC en las
instrucciones de salto incondicional.
CLASIFICACIÓN DE LAS
INSTRUCCIONES RISC
Para estudiar los diversos formatos que admiten las instrucciones del
repertorio de los PIC 16X8X se clasifican en cinco grandes grupos,
atendiendo al tipo de operación que desarrollan.
• Operaciones orientadas a manejar registros
de tamaño byte
• Operaciones orientadas a manejar bits
• Operaciones que manejan valores
inmediatos
• Operaciones de salto condicional
• Operaciones incondicionales de control de
flujo de programa
OPERACIONES ORIENTADAS A MANEJAR
REGISTROS DE TAMAÑO BYTE
EJEMPLO
ADDWF f,d
ADDWF 0X0F,0 ;W=W+[0X0F]
ADDWF 0X0F,1 ; [0X0F]= W+[0X0F]
VAR1 EQU 0X0F
VAR2 EQU 0X10
W=0
W=VAR1+W
W=VAR2+W
ADDWF VAR1,w ;W=W+VAR1
ADDWF VAR1,f ;[0X0F]= W+VAR1
0W
1F
OPERACIONES ORIENTADAS A
MANEJAR BITS
Formato
B9 B8 B7 Posi
cion
0 0 0 0
0 0 1 1
1 1 1 7
Ejemplo
EJEMPLO
BCF f,b
BSF 0x0F,0 ; Ponga “0” en el Bit 0 del Reg.[0x0f]
VAR3 EQU 0X0F
BCF VAR3,5; Ponga “0” en el Bit 5 del Reg.VAR3
EJEMPLO
BCF f,b
BCF 0x0F,7 ; Ponga “0” en el Bit 7 del Reg.[0x0f]
VAR3 EQU 0X0F
BCF VAR3,5; Ponga “0” en el Bit 5 del Reg.VAR3
EJEMPLO
BCF f,b
BCF 0x0F,7 ; Ponga “0” en el Bit 7 del Reg.[0x0f]
VAR3 EQU 0X0F
BCF VAR3,5; Ponga “0” en el Bit 5 del Reg.VAR3
EJEMPLO
BSF f,b
BSF 0x0F,7 ; Ponga “1” en el Bit 7 del Reg.[0x0f]
VAR3 EQU 0X0F
BSF VAR3,5; Ponga “0” en el Bit 5 del Reg.VAR3
OPERACIONES QUE MANEJAN
VALORES INMEDIATOS
Formato
EJEMPLO
ADDLW K
ADDLW 0X0F ; W W+15
ADDLW 0x05 ; W W+5
;FORMATO HEX
MOVLW 0X02 ;W 2
;FORMATO BIN
MOVLW b’00000010’ ;W 2
;FORMATO DEC
MOVLW d’2 ;W 2
OPERACIONES DE SALTO
CONDICIONAL
Formato
Ejemplo
BTFSC f,d
BTFSC 0X03,2 ; Explora el Bit 2 del Reg.[0x03] y salta
una instruccion. Si el bit2 =“0”
GOTO PROC1
GOTO PROC2
BTFSS STATUS,5 ; Explora el Bit 5 del [Link] y salta
una instruccion. Si el bit5 =“1”
GOTO PROC1
GOTO PROC2
OPERACIONES INCONDICIONALES
DE CONTROL DE FLUJO DE
PROGRAMA
Formato
Ejemplo
EJEMPLOS
CALL SUBRUTINA_1 ; Llamar a la “Subrutina_1”(salta a otra posición del programa)
GOTO Inicio ; Va o salta a la Etiqueta “Inicio” (salta a otra posición del programa)
GOTO Fin ; Va o salta a la Etiqueta “Fin” (salta a otra posición del programa)
RETURN
SLEEP
CLRWDT
EJEMPLO
Un Microcontrolador PIC funciona con un cristal de cuarzo de 4
MHz y el Perro Guardián (Watch Dog Time – WDT) está
programado para que se desborde cada 18 mS. ¿Calcular cada
cuantas instrucciones como máximo deberá refrescarse el
registro Perro Guardián con la instrucción CLRWDT?
FOSC 1/(10* 106) = 250 nS
CM = 4* FOSC = 1000 ns = 1uS
18mS= 18000 uS
Se Refrescará c/18000 instrucciones normales como máximo
“Es más importante, la imaginación que el conocimiento”
A. Einstein