Manejo de bits en ensamblador
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.
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.
Alterar un valor manteniendo los otros bits iguales:
and al, 11111100b ; Limpiar bits 0, 1
ior al, 000000XXb ; setear los bits 0, 1 con XX
Esto es expandible a AX, BX, CX, etc. como a EAX, ECX, E... y cualquier localidad de memoria.
Un AND borra los bits a cero y deja igual los bits a uno.
Un OR setea los bits a uno y deja igual los bits a cero.
and al, 11111100b ; Limpiar bits 0, 1
ior al, 000000XXb ; setear los bits 0, 1 con XX
Esto es expandible a AX, BX, CX, etc. como a EAX, ECX, E... y cualquier localidad de memoria.
Un AND borra los bits a cero y deja igual los bits a uno.
Un OR setea los bits a uno y deja igual los bits a cero.
