Autor
|
Tema: ¿Que hace AND? (Leído 5,998 veces)
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
Tengo una duda, que es lo que hace AND, porque en este code de yurix lo utiliza, yo os lo pongo como me lo he escrito yo en mi PC: include 'win32ax.inc' .data jx db 'Es impar',0 .code start: mov eax,5 and eax,1 jnz impar ret impar: push 0 push jx push jx push 0 call [MessageBoxA] ret .end start
|
|
|
En línea
|
|
|
|
Lewert
Desconectado
Mensajes: 231
|
AND Destino, Dato
Imaginemos que tenemos guardado en eax el valor 101011 y en ebx el valor 011101. Tras hacer “and eax, ebx” nos quedaría guardado en eax el valor 001001. Sacado del Tutorial de ASM de E0N Es decir que "and eax, 1" aplica el operador AND a eax y 1 y guarda el resultado en eax.
|
|
|
En línea
|
Crack the bytes, crack yourself
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Es una operacion logica aplicada a cada bit del destino y la fuente, si ambos son 1 entonces el resultado sera 1 sino sera 0. 1 es T (true) y 0 es F (false), la tabla de verdaderos de AND es simple: T T T T F F F T F F F F http://pdos.csail.mit.edu/6.828/2006/readings/i386/AND.htmhttp://en.wikipedia.org/wiki/Logical_ANDhttp://en.wikipedia.org/wiki/Binary_andhttp://en.wikipedia.org/wiki/Bitwise_operation#ANDEn este caso es como Lewert dice, la operacion se realiza entre eax (5) y 1, el objetivo es determinar si el numero es par: 5 = 00000101 AND 1 = 00000001 ---------------- 1 = 00000001 Al usar este tipo de and en eax nos aseguramos que el numero sera 1 si no es par o 0 si lo es (un numero par no tiene el primer bit nunca).
|
|
« Última modificación: 6 Julio 2009, 14:04 pm por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
Osea que se utiliza para sumar valores, no?
|
|
|
En línea
|
|
|
|
alki
Desconectado
Mensajes: 308
|
Osea que se utiliza para sumar valores, no?
Multiplicar... La suma seria un OR. Un Saludo
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
A vale gracias, no me acordaba que lo de sumar era add.
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
No ... se usa para hacer un AND logico ... y un OR no es una suma 5 OR 1 es 5 ... lean un poco por favor.
|
|
« Última modificación: 6 Julio 2009, 15:08 pm por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
alki
Desconectado
Mensajes: 308
|
No ... se usa para hacer un AND logico ... y un OR no es una suma 5 OR 1 es 5 ... lean un poco por favor.
Claro.. pero la correspondencia en operaciones de un solo bit el OR se parece a una suma y el AND a una multiplicacion. Pense que el lo preguntaba por eso. Ademas creo que a el le quedaria claro que el AND no multiplica despues de ver tu ejemplo (5 AND 1 = 1) xDD. Un Saludo
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Claro.. pero la correspondencia en operaciones de un solo bit el OR se parece a una suma y el AND a una multiplicacion. Pense que el lo preguntaba por eso. 0 OR 0 = 0, 1 OR 1 = 1. El AND en bit si; 34 AND 1 = 0. Ademas creo que a el le quedaria claro que el AND no multiplica despues de ver tu ejemplo (5 AND 1 = 1) xDD. Si se penso que sumaba
|
|
« Última modificación: 7 Julio 2009, 19:35 pm por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Yurix
Desconectado
Mensajes: 72
Paz para la guerra y guerra por la paz
|
Hola erik
Como trabaja AND : Es muy facil.And lo que hace es multiplicar los bits por ejemplo si es
destino * fuente
0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1
Es muy fácil.
|
|
|
En línea
|
|
|
|
|
|