Hola. Bueno...hay casi innumerable cantidad de algoritmos que pueden reemplazar a ese que posteaste.
Ejemplo:
INICIO
rrf PORTA,W
andlw 0x03 ;quedarme sólo con los valores de RA1 y RA2.
call TomarValor
movwf PORTA
goto INICIO
TomarValor
addwf PCL,F ;Sumar al contador de programa(PCL) el valor de W
retlw 0x01 ;Si ambos pulsadores presionados(W=0), encender led.
retlw 0x00 ;Si RA1 no presionado y RA2 presionado(W=1), apagar led.
retlw 0x01 ;Si RA presionado y RA2 no presionado(W=2), encender led.
retlw 0x00 ;Si ambos pulsadores no presionados(W=3), apagar led.
Bueno, ese es un ejemplo, si necesitas mas, avisa.
Saludos.