Título: ¿Que hace AND? Publicado por: Erik# en 6 Julio 2009, 13:42 pm 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:
Código
Título: Re: ¿Que hace AND? Publicado por: Lewert en 6 Julio 2009, 13:49 pm Citar AND Destino, Dato Sacado del Tutorial de ASM de E0N ;)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. Es decir que "and eax, 1" aplica el operador AND a eax y 1 y guarda el resultado en eax. Título: Re: ¿Que hace AND? Publicado por: Eternal Idol en 6 Julio 2009, 14:00 pm 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.htm http://en.wikipedia.org/wiki/Logical_AND http://en.wikipedia.org/wiki/Binary_and http://en.wikipedia.org/wiki/Bitwise_operation#AND En 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). Título: Re: ¿Que hace AND? Publicado por: Erik# en 6 Julio 2009, 14:42 pm Osea que se utiliza para sumar valores, no?
Título: Re: ¿Que hace AND? Publicado por: alki en 6 Julio 2009, 14:46 pm Osea que se utiliza para sumar valores, no? Multiplicar... La suma seria un OR. Un Saludo Título: Re: ¿Que hace AND? Publicado por: Erik# en 6 Julio 2009, 15:02 pm A vale gracias, no me acordaba que lo de sumar era add.
Título: Re: ¿Que hace AND? Publicado por: Eternal Idol en 6 Julio 2009, 15:05 pm 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.
Título: Re: ¿Que hace AND? Publicado por: alki en 6 Julio 2009, 15:59 pm 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 Título: Re: ¿Que hace AND? Publicado por: Eternal Idol en 6 Julio 2009, 19:07 pm 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 ;D :-X Título: Re: ¿Que hace AND? Publicado por: Yurix en 7 Julio 2009, 18:31 pm 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. Título: Re: ¿Que hace AND? Publicado por: Eternal Idol en 7 Julio 2009, 19:06 pm Exacto; eso es lo que dice la documentacion enlazada ....................
|