Para leer el puerto con los nibbles independientes haces asi:
movlw 0x0F ; movemos a W 00001111
andwf PORTA,0 ; al hacer una and lo que esta en 0 quedara en 0 y lo que esta a1 quedara con su valor
movwf AUXILIAR ; se guarda en un registro, hay que definirlo al principio
Ya tienes leido el nibble bajo, para el alto:
movlw 0xF0
andwf PORTA,0 ; ahora nos quedara el nibble bajo a 0 y el alto con su valor
swapf W,0 ; invertimos los nibbles para restar
subwf AUXILIAR,0 ; restamos y lo dejamos en W
En este punto ya tienes el resultado de la resta, ahora tendras que hacer una tabla para convertir ese valor al codigo del display y sacar el valor por el PORTB. Esto lo tienes en los ejemplos de ese enlace que te puse.