;Tres valores están almacenados en la memoria, A, B y C. Y en las
;direcciones 10, 11 y 12h. Resolver ecuación (A + B) - C.
;Velocidad d ereloj; 4MHz
LIST p=16F84A ;Tipo de procesador.
INCLUDE <P16F84A.INC>;Definiciones de registros internos.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;*****************************************************************
DATO_A EQU 0x10;Define la posición del dato A
DATO_B EQU 0x11;Define la posición del dato B
DATO_C EQU 0x12;Define la posición del dato C
RESULTADO EQU 0x13;Define la posición del dato RESULTADO
;*****************************************************************
ORG 0x00;Vector de reset
goto INICIO
ORG 0x05;Salva el vector de interrupción
INICIO:
movf DATO_A,W;Carga el 1er sumando
addwf DATO_B,W;Suma 2º operando
movwf RESULTADO;Almacena resultado parcial
movf DATO_C,W;Carga el sustraendo
subwf RESULTADO,F;Resta el minuendo y almacena
STOP
goto $
END ;Fin del programa