List p=16F873 ;Tipo de procesador
#include "P16F873.INC" ;Definiciones de registros internos
org 0x00 ;Vector de Reset
goto Inicio
org 0x05 ;Salva el vector de interrupción
Inicio clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000110'
movwf ADCON1 ;Puerta A digital
clrf TRISB ;Puerta B se configura como salida
movlw b'00111111'
movwf TRISA ;Puerta A se configura como entrada
bcf STATUS,RP0 ;Selecciona banco 0
Loop clrwdt ;Refrescar el WDT
movf PORTA,W ;Leer las entradas RA0-RA5
xorlw b'00111111' ;Complementa el valor leído
movwf PORTB ;Reflejar en las salidas RB0-RB5
goto Loop ;Bucle sin fin
end ;Fin del programa fuente