Autor Tema: instruccion asm para hacer y-logica entre dos bits.  (Leído 2497 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
instruccion asm para hacer y-logica entre dos bits.
« 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...    :)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: instruccion asm para hacer y-logica entre dos bits.
« Respuesta #1 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
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: instruccion asm para hacer y-logica entre dos bits.
« Respuesta #2 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.
.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: instruccion asm para hacer y-logica entre dos bits.
« Respuesta #3 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

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: instruccion asm para hacer y-logica entre dos bits.
« Respuesta #4 en: 19 de Febrero de 2007, 19:05:03 »
muchisimas gracias, por el codigo.   :-)
« Última modificación: 19 de Febrero de 2007, 19:08:01 por black_flowers »