TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: black_flowers en 19 de Febrero de 2007, 09:30:37

Título: instruccion asm para hacer y-logica entre dos bits.
Publicado 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...    :)
Título: Re: instruccion asm para hacer y-logica entre dos bits.
Publicado por: maunix en 19 de Febrero de 2007, 12:09:52
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
Código: ASM
  1. btfss   REG1,0                  ; bit #0
  2.     goto    DIFERENTES
  3.     btfss   REG1,1
  4.     goto    DIFERENTES
  5.  
  6. IGUALES:
  7.    ;...
  8.  
  9.    goto IGUALES
  10. DIFERENTES
  11.    ;...
  12.  
  13.    goto DIFERENTES
  14. [/code
  15.  
  16.  
  17. Saludos
Título: Re: instruccion asm para hacer y-logica entre dos bits.
Publicado por: Cryn en 19 de Febrero de 2007, 16:10:47
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.
Título: Re: instruccion asm para hacer y-logica entre dos bits.
Publicado por: maunix en 19 de Febrero de 2007, 17:29:36
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

Título: Re: instruccion asm para hacer y-logica entre dos bits.
Publicado por: black_flowers en 19 de Febrero de 2007, 19:05:03
muchisimas gracias, por el codigo.   :-)