You are on page 1of 10

T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas

Instrucciones para implementar operaciones lgicas


Instrucciones para implementar operaciones aritmticas
andlw
andwf
iorlw
iorwf
xorlw
xorwf
comf
addlw
addwf
sublw
subwf

El set de instrucciones del uControlador incluye las siguientes instrucciones o
nemnicos para la realizacin de operaciones lgicas y aritmticas.
PROGRAMACIN EN ASSEMBLER (ENSAMBLADOR)
ETM 380 Sistemas Microprocesados 1
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
Tablas de verdad
and (y) or (o inclusivo) xor (o exclusivo)
com (complemento)
ETM 380 Sistemas Microprocesados 2
a b a b
0 0 0
0 1 0
1 0 0
1 1 1
a b a + b
0 0 1
0 1 1
1 0 1
1 1 0
a b a + b
0 0 0
0 1 1
1 0 1
1 1 0
a a
0 1
1 0
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
ETM 380 Sistemas Microprocesados 3
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
ETM 380 Sistemas Microprocesados 4
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
ETM 380 Sistemas Microprocesados 5
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
ETM 380 Sistemas Microprocesados 6
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
Ejemplo: Implementar el siguiente circuito con el uC PIC16F877A y calcular la salida
ETM 380 Sistemas Microprocesados 7
Redibujamos el circuito:
list p = 16f877a

movlw 0x48
xorlw 0xad
xorlw 0x7f
andlw 0x7f
movwf 0x20
comf 0x20,0
sleep
end
Solucin utilizando valores inmediatos.
El resultado final se almacena en W
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
Ejemplo: Implementar el siguiente circuito con el uC PIC16F877A y calcular la salida
ETM 380 Sistemas Microprocesados 8
Solucin utilizando referencias a memoria, utilizando la directiva equ y el archivo
p16f877a.inc donde se encuentran las definiciones de registros y valores estndares para
el uC.
list p = 16f877a
include p16f877a.inc

num1 equ 0x20
num2 equ 0x21
num3 equ 0x22
x equ 0x23

movlw 0x48
movwf num1
movlw 0xad
movwf num2
movlw 0x7f
movwf num3
xorwf num2,W
xorwf num1,W
andwf num3,W
movwf x
comf x,F
sleep
end
El resultado se guarda en el registro 0x23,
referenciado por la etiqueta o nombre x.
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
Implementacin en lenguaje C
and (y) or (o inclusivo) xor (o exclusivo) com (complemento)
ETM 380 Sistemas Microprocesados 9
Operacin Sintxis Leng. C
and &
or |
xor ^
com ~
T4: Instrucciones para implementar operaciones lgicas a nivel de bits y aritmticas
Ejemplo: Implementar el siguiente circuito con el uC PIC16F877A y calcular la salida
ETM 380 Sistemas Microprocesados 10
#include <16F877a.h>
#fuses XT,NOWDT
#BYTE x = 0x20
void main()
{
int a, b, c;
a=0x48;
b=0xad;
c=0x7f;
x=~((a^b^c)&c);
sleep();
}
La salida se guarda en el registro 0x20 referenciado como x.

You might also like