Duda de salto en un pic16f84, en ensamblador.

Que tal, soy novato en esto del lenguaje ensamblador acabo de comprar un libro dedicado a la programacion del pic16f84a y en el vienen varios programitas en ensamblador pero lei que hay las instrucciones btfsc y btfss las cuales son funciones para dar un salto en funcion de un bit pero resulta que solo toman en cuanta un bit para realizar su funcion por ejemplo

btfss porta,2
solo me va a evaluar el pin correspondiente del puerto A, oviamente antes lo tengo que configurar como entrada

mi duda en concreto es como puedo evaluar varias entradas con una instruccion y no solo una como al parecer lo hacen las instrucciones btfsc y btfss, ya que en un proyecto que tengo que hacer no solo tengo una entrada , tengo 5 entradas ( todo el puerto A) y en una parte del codigo necesito hacer un salto si el puerto A es 01110 y con la instruciones btfsc, btfss no se si se pueda ya que solo me evalua un bit osea una entrada y yo necesito que haga el salto solo cuando sea 01110 en caso contrario no salta . bueno si saltaria pero aqui mismo para seguir evaluando el puerto A
 
lo puedes hacer con un enmascaramiento, usando AND, XOR o incluso una resta.

un ejemplo sería :
Código:
movf   PORTA,W              ;carga el registro W con el valor del Puerto A
addlw -d'14'                  ; le suma -14
btfsc STATUS,Z              ;checa si los valores coinciden 
goto mi_rutina_para_este_caso
 
igual habia pensado asi en hacer una resta y si el resultado es cero salte a donde debe y siga el programa
pero entonces no hay otra manera que no sea restando?
y en cuanto el enmascaramiento tengo entendido que solo es para cuando concidan los valores con una funcion and u or o etc de otro modo no funciona o si?
 
Atrás
Arriba