¿Cómo ANDed bitwise en el ensamblador?

-2

Diga que tengo una variable configurada en 30. En binario, 30 = 11110. Me gustaría probar algunos bits y luego realizar una acción. Por ejemplo, si se establece el bit 4 Y el bit 3 se establece Y el bit 2 se establece Y el bit 1 se establece ENTONCES realiza la acción . ¿Cómo puedo hacer esto en ensamblador?

    
pregunta user18050

1 respuesta

2

Parece que quiere saber si cierto conjunto de bits en una palabra es 1 con los bits restantes irrelevantes. Llamemos a la palabra con el conjunto de bits que desea probar para la "máscara". En su caso, desea probar el conjunto de bits 4, 3, 2 y 1, y el resto es irrelevante. Por lo tanto, la máscara sería 11110.

El procedimiento es Y la palabra para probar con la máscara, luego verifique que el resultado sea igual a la máscara. Si es así, se establecen los bits en la máscara. Por ejemplo:

word to test   10011110
mask           00011110
AND            00011110

¿El resultado AND es igual a la máscara? En este caso, sí, todos los bits que figuran en la máscara se configuran en la palabra original. Aquí hay un ejemplo negativo:

word to test   10011010
mask           00011110
AND            00011010

Como puede ver, el resultado AND no es igual a la máscara, por lo que la respuesta es no. En este caso, la palabra original tenía el bit 2 borrado, por lo que la prueba falló.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas