Ensamblador - Manejo de bits en ensamblador

 
Vista:

Manejo de bits en ensamblador

Publicado por rodrigo lezama (5 intervenciones) el 18/04/2005 19:12:13
Hola a todos y gracias por leer esto.
A ver, ¿me podria explicar alguien como manejar los bits por separado de una variable o de un registro? Un ejemplo :

mov ah,0
mov al, 11001100b

asi tengo en ax 11001100 en binario, si yo quisiera solo acceder a los bits menos significativos (los dos ceros de la derecha ) para bien consultarlos o bien cambiarlos (solo cambiar esos dos ojo) ¿Como tendria que hacerlo?

Muchas gracias otra vez por leerlo cualquier ayuda sera bien recibida, un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Manejo de bits en ensamblador

Publicado por Ge-ergon (1 intervención) el 20/04/2005 05:11:21
Hola!

Para manejar los bits comunmente se utilizan mascaras y las instrucciones ror, rol, sal y shl.

Para leer los dos ultimos bits se puede hacer lo siguiente:

mov al, 11001100b
mov bl, 00000011b
and al,bl

El resultado queda en AL. Tambien se puede aplicar un OR o XOR o lo que se ajuste al caso. En este ejemplo si AL es igual a cero significa que los dos ultimos bits estan inactivos, y si AL igual a 1 significa que el ultimo bit esta activo, y si AL es igual a 2 significa que el segundo bit esta activo, por ende si los dos bits estan activos retornara 3 en AL.
Ahora para cambiarlos utiliza un XOR en vez de AND

La instrucción SHR, realiza un corrimiento a la derecha de la cantidad de bits especificada por el contador en la "variable" destino.
Su uso es:
SHR Destino, Contador

La bandera "carry flag" contiene el valor del ultimo bit corrido.
En determinado caso se puede utilizar la instrucción JC para realizar algun proceso si el bit de acarreo esta activo.

Los bits del registro de banderas pueden ser modificados mediante
instrucciones como por ejemplo CLI, CLD, CLC, STC y otros.

Busca algun manual de referencia de las instrucciones para asm86 por ejemplo el "helppc". Lo puedes encontrar realizando una busqueda en Google. Busca en el helppc sobre las instracciones ror, rol y demas.

Muchas Gracias por tiempo
Att:Geergon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar