Que tal Marin,
En realidad hacer un "IF" en ensamblador no tiene mucho problema, en tu caso seria algo asi:
movf porta,w ;Mueve el valor del puerto A al registro W
xorlw .50 ;Compara el registro de trabajo con un 50 decimal
btfss status,z ;Se ha levantado la bandera de "zero" del registro status? (Es decir el puerto A es igual a 50?)
goto compara_60 ;No, entonces ve a preguntar por el otro valor
gosub tu_subrutina
....
compara_60:
movf porta,w
xorlw .60
btfss status,z
goto a_otro_lugar
gosub subrutina_60
Esta es la idea, ojala te sirva.
Elreypic.