Set De Instrucciones
ADDWF
Acción
Suma el contenido del acumulador y el registro dado, y el resultado lo guarda en d
Sintaxis
ADDWF f,d
Funcionamiento
Add W to file register (Añade W al registro)
Hexadecimal
07 ff
Bits (OPCODE)
00 0111 dfff ffff
Operación
d = W + f (d puede ser W ó f).
Descripción
Esta instrucción suma el contenido de un registro específico al contenido de W donde fpuede ser un registro cualquiera con un determinado valor.
Comentarios
Aunque ya conocemos el funcionamiento del bit d, lo repetiré de nuevo para el resto de instrucciones:
- Si vale 1, el resultado se guarda en el registro f
- Si vale 0, el resultado se guarda en el acumulador W
Registro STATUS
Modifica los bits Z, DC y C.
Z vale 1 si el resultado de la operación es 0.
DC vale 1 siel resultado de la operación es un número superior a 15.
C vale 1 si el resultado de la operación es positivo o el bit 7 del registro que contiene el resultado vale 0. En caso contrario C vale 0 (resultado negativo).
Ejemplo
Tomamos como valores iniciales W = 5 y DATO = 10, donde dato es un registro cualquiera.
ADDWF DATO ; DATO = 15 y W = 5.
ADDWF DATO, 1 ; DATO = 15 y W =5.
ADDWF DATO, 0 ; W = 15 y DATO = 10.
ADDWF DATO, W ; W = 15 y DATO = 10.
Ciclos de máquina
1
ANDWF
Acción
Realiza la operación AND entre un registro y W
Sintaxis
ANDWF f,d
Funcionamiento
AND W with f
Hexadecimal
05 ff
Bits (OPCODE)
00 0101 dfff ffff
Operación
d = W AND f (d puede ser W o f).
Descripción
Esta instrucción realiza la operación lógica AND entre elacumulador y el registro f. el resultado se guarda dependiendo del valor de d. Si este se omite, el valor por defecto es 1 y se guarda en f
Comentarios
La operación AND es una de las operaciones básicas del álgebra de Boole. Esta viene descrita en el apartado de electrónica digital. Para comprender de nuevo cual es su comportamiento, recojo en la siguiente tabla los valores de la tabla de verdad de estaoperación.
ENTRADA
SALIDA
f
W
S
0
0
0
0
1
0
1
0
0
1
1
1
La operación lógica es:
S = f · W
Esta instrucción realiza esta operación para cada uno de los 8 bits de los dos registros, dos a dos, guardando el resultado en el registro correspondiente.
Registro STATUS
Modifica el bit Z.
Z vale 1 si el resultado de la operación es 0.
Ejemplo 1
Supongamos que W=00001111 y f = 11110000 antes de ejecutar la instrucción ANDWF f,d
ENTRADA
RESULTADO
W
f
W · f
Bit 7
0
1
0
Bit 6
0
1
0
Bit 5
0
1
0
Bit 4
0
1
0
Bit 3
1
0
0
Bit 2
1
0
0
Bit 1
1
0
0
Bit 0
1
0
0
Ejemplo 2
Ahora en nuestro segundo ejemplo tenemos que W = 01110011 y f = 00101001 antes de ejecutar la instrucción ANDWF f,d tenemos:
ENTRADA
RESULTADO
W
f
W · f
Bit 7
0
0
0
Bit 6
1
0
0
Bit 5
1
1
1Bit 4
1
0
0
Bit 3
0
1
0
Bit 2
0
0
0
Bit 1
1
0
0
Bit 0
1
1
1
Ciclos de máquina
1
CLRF
Acción
Borra un registro
Sintaxis
CLRF f
Funcionamiento
Clear file register
Hexadecimal
01 8f
Bits (OPCODE)
00 0001 1fff ffff
Operación
F = 0
Descripción
Esta instrucción borra un registro específico, poniendo sus bits a cero
Comentarios
Ninguno
Registro STATUS
Modifica el bit Z y lo pone a 1 (ya que elresultado de la operación es 0).
Ejemplo
Tenemos un registro que se llama dato y que vale 3F. Ponemos:
CLRF dato
Ahora dato vale 00
Ciclos de máquina
1
CLRW
Acción
Borra el acumulador
Sintaxis
CLRW
Funcionamiento
Clear W
Hexadecimal
01 8f
Bits (OPCODE)
00 0001 0xxx xxxx
Operación
W = 0
Descripción
Esta instrucción borra el registro W solamente
Comentarios
Donde pone xxx… en lainstrucción en hexadecimal, significa que noo importa qué valor puede contener
Registro STATUS
Modifica el bit Z y lo pone a 1 (ya que el resultado de la operación es 0).
Ejemplo
Tenemos el acumulador cargado con el valor 3F. Ponemos:
CLRF dato
Ahora W vale 00
Ciclos de máquina
1
COMF
Acción
Complementa el registro F
Sintaxis
COMF f,d
Funcionamiento
Complement f
Hexadecimal
09 ff
Bits (OPCODE)
00 ...
Regístrate para leer el documento completo.