TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: black_flowers en 19 de Febrero de 2007, 09:30:37
-
hola de nuevo,
sabeis si hay una instruccion en asm que para hacer la y-lógica entre bits?
es decir, sería para hacer esto: if(bitx && bity) then...
sl2,sl2,sl2... :)
-
Hola black_flowers
No hay instrucción como tal , te la debes crear tu mismo
Esto compara el bit 0 con el bit 1 de un registro REG1
btfss REG1,0 ; bit #0
goto DIFERENTES
btfss REG1,1
goto DIFERENTES
IGUALES:
;...
goto IGUALES
DIFERENTES
;...
goto DIFERENTES
[/code
Saludos
-
umm, me parece que no esta correcto el algoritmo para un caso, ya que supongamos que en el reg1 tenemos el valor xxxxxx00, hace el primer testeo del bit 0 que en este caso es 0 y entonces no salta instruccion y se va a diferentes, y tenemos el caso de 00 en los bits 1 y 0, y son iguales, y pues ahi ta el error, si el algoritomo se trata de comparacion; seria mejor decir que, en realidad es lo que el amigo black_flowers queria y que es un and entre bits, y con el permiso de maunix el codigo seria, para ser mas entendible en las etiquetas:
btfss REG1,0 ; bit #0
goto FALSO
btfss REG1,1
goto VERDADERO
VERDADERO:
;...
goto VERDADERO
FALSO
;...
goto FALSO
y asi se tiene que solo va ha verdadero cuado los dos bits son uno, lo que hace la funcion AND, weno seguramente que a eso se referia nuestro gran amigo maunix, weno para que quede mas claro a nuestro amigo black
saludos.
-
Estás en lo cierto Cryn, si bien el código es idéntico, tal vez las etiquetas que usé no son los mas apropiados, :mrgreen:
El código se refiere a IGUALES cuando ambos son 1, que era el caso puntual que preguntó black_flowers.
Saludos
-
muchisimas gracias, por el codigo. :-)