Creo q la directiva if se usa solo para indicarle al compilador lo q debe hacer no al programa que reside en el pic, si deseas comprobar el valor de un registro contra un valor fijo usa esta rutina:
Codigo:
movf <reg a leer>, w
xorlw .10
btfss status, c
goto <falso> ;Ira a esta rutina si el valor es distinto de 10
goto <verdadero> ;Ira a esta rutina si el valor es igual a 10
para comprobar si un valor es menor o mayor al otro es casi lo mismo:
Codigo:
movf <reg a leer>, w
sublw .10
btfss status, c
goto <falso> ;Valor es mayor a 10
goto <verdadero> ;Valor es menor a 10
En esta rutina lo q se hace es verificar si el valor de la resta genera un overflow de 255 (por lo q el bit C de status se activa)