w
EQU
f
EQU
STATUS
EQU
RP1
EQU
RP0
EQU
Estas directivas, junto con las del resto de los registros, así como los bits individuales de cada registro, se almacenan en
un solo archivo que se denomina p16F628.inc y que es parte de las librerías ya incluídas en el programa MPLAB, del cual se habla
más adelante. Es suficiente escribir, dentro del programa fuente en lenguaje ensamblador, la directiva:
include <p16F628.inc>
Una vez establecidas estas equivalencias, podemos poner algunos ejemplos con instrucciones. Observe que, en todas
ellas es posible a veces usar las equivalencias o bien escribir directamente el valor numérico. Por ejemplo:
Etiqueta
Instrucción
EJEMPLO1
bcf
Resultado: Bit Clear f. Pon en cero el bit RP0 del registro STATUS.
EJEMPLO2
bcf
Resultado: mismo que en el ejemplo anterior, pero usando ahora las constantes directamente al escribir la instrucción. Observe
como el hecho de escribir directamente la palabra "STATUS" en lugar del número 3, facilita la comprensión.
EJEMPLO3
btfss
Resultado: Bit Test f, Skip if Set. Si el bit RP1 del registro designado es cero, ejecuta la siguiente instrucción, si el bit es 1,
entonces no ejecuta la siguiente instrucción, pero sí la que sigue a ésta.
EJEMPLO4
addlw
Resultado: Add literal to W. Suma el registro W con la constante 3AH. El resultado lo pone en W.
EJEMPLO5
decfsz
Resultado: Decrement f, Skip if Zero. Decrementa el valor de la localidad 20H. El resultado lo almacena en el registro w. Si el
resultado es 0, no ejecuta la siguiente instrucción, sino la inmediata después de ésta. Si el resultado es diferente de 0, entonces ejecuta
la siguiente instrucción.
EJEMPLO6
dec
Resultado: Decrementa la localidad 2AH, el resultado lo pone en el registro W.
EJEMPLO7
andwf
Resultado: hace la operación lógica AND entre la localidad 2BH y el registro w. El resultado lo pone en la localidad 2B.
EJEMPLO8
btfsc
Resultado: Bit Test f, Skip if Clear. Hace una prueba sobre el bit 3 de la localidad 35H. Si el valor es 0, no ejecuta la siguiente
instrucción, pero sí la siguiente. Si el valor es 1, entonces ejecuta la siguiente instrucción.
14.2 FORMATO DE LAS INSTRUCCIONES:
Todas las instrucciones llevan alguno de los siguientes formatos, dependiendo de la función que desempeñen:
Instrucciones orientadas a byte. Instrucciones orientadas a bit. Instrucciones de manejo de constantes (en la literatura de Microchip,
las constantes se denominan "literals") y, finalmente instrucciones de salto CALL y GOTO.
Enseguida, se muestra el formato para cada tipo de instrucción. Las palabras son de 14 bits. El trabajo de
decodificación de cada formato es realizado por el programa ensamblador, razón por la cual el programador no requiere de
decodificar manualmente cada instrucción..
INSTRUCCIONES ORIENTADAS A BYTES:
Si d=0, destino es w, si d=1, destino es f
INSTRUCCIONES ORIENTADAS A BITS:
18
H'0000'
PORTA
H'0001'
PORTB
H'0003'
TRISA
H'0006'
TRISB
H'0005'
PCLATH
Operando
STATUS,RP0
3,5
STATUS,RP1
3AH
20H,w
2AH,w
2BH,f
35H,3
13
OPCODE
13
EDUPIC 16F628 Punto Flotante, S.A. 2010
EQU
H'0005'
EQU
H'0006'
EQU
H'0085'
EQU
H'0086'
EQU
H'000A'
Forma general:
bcf
f,d
btfss
f,b
addlw
k
decfsz
f,d
dec
f,d
andwf
f,d
btfsc
f,b
7
d f (file register)
9 8 7
0
0