Muchos usan (incluso libros), me parece que incorrectamente a mi gusto, el PORTB como referencia a acceder al TRISB. ya que como comentas estan en el banco 1.
Ese codigo es raro, ya que usualmente no repiten el tema de poner como salidas el puerto B.
Mi duda está en si eso es correcto, es decir, en la segunda instrucción accede a portB, sinembargo está en el banco 1 de la memoria.
PORTB y TRISB son solo numeros que estan definidos en el .inc
La direccion de memoria de uno y otro es distinto, pero como las instrucciones solo soportan cierta cantidad de bits, se se recorta, ambos quedan accediendo a la misma posicion de memoria. En fin ahi no es mas que esto:
bsf STATUS,RP0
clrf TRISB
movlw b'00011111'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
Por que pone a 0 todas las salidas y despues las configura como salidas? Es por un tema de seguridad?
En realidad estos PICs son malos sus etapas de salidas y entradas, por lo que hay que tomar ciertas precauciones PERO estas no son, Al poner a 0 el PORTB mientras estan como entradas no les va a cambiar nada. Por eso los otros PICs traen otros registros como LATB (registro de salida), PORTB (registro de entrada) y TRSIB (direccion del pin).
La precaucion que se debe tener con estos pines ES si tu carga es muy capacitiva, y si tenes 2 cambios de pin seguidos. Eso puede traer problemas, problema que desaparece con los PICs que traen ya los tres registros, como casi todos los PIC nuevos... Ya nadie usa el PIC16F84, mas que para aprender apenas el funcionamiento.