AND
Esta instrucción reliza la operación lógica AND bit a bit entre el operando destino y el operando fuente (destino AND fuente). El resultado se guarda en el operando destino. El operando fuente no se modifica.
Los flags se modifican de la siguiente manera:
CF=0.- Si el resultado es cero, entonces
ZF=1. De lo contrario,ZF=0. - Si el el bit más significativo del resultado es
1, entoncesSF=1. De lo contrario,SF=0. OF=0.
Uso
vonsim
AND dest, fuenteLas combinaciones válidas de dest, fuente son:
- Registro, registro
- Registro, dirección de memoria
- Registro, inmediato
- Dirección de memoria, registro
- Dirección de memoria, inmediato
(Ver tipos de operandos)
Codificación
- REGISTRO a registro
1000001w,00RRRrrr - Memoria (directo) a registro
1000001w,01000rrr, dir-low, dir-high - Memoria (indirecto) a registro
1000001w,01010rrr - Memoria (indirecto con desplazamiento) a registro
1000001w,01100rrr, desp-low, desp-high - Inmediato a registro
1000001w,01001rrr, dato-low, dato-high - Registro a memoria (directo)
1000001w,11000rrr, dir-low, dir-high - Registro a memoria (indirecto)
1000001w,11010rrr - Registro a memoria (indirecto con desplazamiento)
1000001w,11100rrr, desp-low, desp-high - Inmediato a memoria (directo)
1000001w,11001000, dir-low, dir-high, dato-low, dato-high - Inmediato a memoria (indirecto)
1000001w,11011000, dato-low, dato-high - Inmediato a memoria (indirecto con desplazamiento)
1000001w,11101000, desp-low, desp-high, dato-low, dato-high
Donde w es el bit de tamaño de los operandos. w=0 indica operandos de 8 bits y w=1 operandos de 16 bits. Cuando w=0, dato-high es obviado (la longitud de la instrucción es de un byte menos).
rrr o RRR codifica un registro según la siguiente tabla:
rrr | w=0 | w=1 |
|---|---|---|
000 | AL | AX |
001 | CL | CX |
010 | DL | DX |
011 | BL | BX |
100 | AH | SP |
101 | CH | -- |
110 | DH | -- |
111 | BH | -- |