HOla
Saludos!!
Esto si lo haces en ensamblador
Supongo ya tienes configurado tu pic, si no es asi , asegurate de configuarar los pines como entrada digital , ya que por inicio estan como entrada analoga.
Esto lo puedes hacer de la siguiente manera :
;CONFIGURACION
BCF STATUS,RP0
MOVLW 0x07 ; desactivamos comparadores
MOVWF CMCON
; Nos ubicamos en el banco donde se encuentre el registro PORTA
CLRF PORTA ; Inicializamos el puerto
CLRF PORTB
BANKSEL ANSEL ; Seleccionamos el banco donde se encuentre el registro ANSEL (este se encarga de cofigurar los pines como Analógo/DIgital)
MOVLW 0x00 ; Configuramos los pines como digitales
MOVWF ANSEL
MOVLW 0x0F ; Configuramos los pines de RA0 a RA3 como entrada
MOVWF TRISA ; RA4 a RA7 configurados como salida
CLRF TRISB
Esto lo puedes ver en la hoja de especificaciones del micro en la seccion de PORTS I/O
;-------------------------------------
;Leer puerto
BCF STATUS,RP0
Leer
MOVF PORTA,W ; PORTA---> W ya tenemos el estado del puerto en W
ADDLW .50 ; 50+W=W suma W con el valor y se guarda en W
MOVWF PORTB ; MOvemos el contenido de W al PORTB
GOTO Leer
Checa el set de intrucciones y un buen vistazo por el foro , seguro encontraras lo que necesites.