AngoLinux

80386 Programmer's Reference Manual -- Opcode AND


AND -- Logical AND

OpcodeInstructionClocks DescriptionExample
24 ibandb imm8,al2 AND immediate byte to ALandb $0x7f,%al
25 iwandw imm16,ax2 AND immediate word to AXandw $0x7fff,%ax
25 idandl imm32,eax2 AND immediate dword to EAXandl $0x7fffffff,%eax
80 /4 ibandb imm8,r/m82/7 AND immediate byte to r/m byteandb $0x7f,%dl
andb $0x7f,(%ebx,1)
andb $0x7f,m8(%ebx,1)
andb $0x7f,m8(%ebx,%ebp,1)
81 /4 iwandw imm16,r/m162/7 AND immediate word to r/m wordandw $0x7fff,%cx
andw $0x7fff,(%ebx,1)
andw $0x7fff,(%ebx,2)
andw $0x7fff,(%ebx,%ebp,1)
81 /4 idandl imm32,r/m322/7 AND immediate dword to r/m dwordandl $0x7fffffff,%ecx
andl $0x7fffffff,(%ebx,2)
andl $0x7fffffff,(%ebx,4)
andl $0x7fffffff,(%ebx,%ebp,1)
83 /4 ibandw imm8,r/m162/7 AND sign-extended immediate byte with r/m wordandw $0x7f,%cx
andw $0x7f,(%ebx,1)
andw $0x7f,(%ebx,2)
andw $0x7f,(%ebx,%ebp,1)
83 /4 ibandl imm8,r/m322/7 AND sign-extended immediate byte with r/m dwordandl $0x7f,%ecx
andl $0x7f,(%ebx,2)
andl $0x7f,(%ebx,4)
andl $0x7f,(%ebx,%ebp,1)
20 /randb r8,r/m82/7 AND byte register to r/m byteandb %bh,%dl
andb %bh,(%ebx,1)
andb %bh,m8(%ebx,1)
andb %bh,m8(%ebx,%ebp,1)
21 /randw r16,r/m162/7 AND word register to r/m wordandw %bx,%cx
andw %bx,(%ebx,1)
andw %bx,(%ebx,2)
andw %bx,(%ebx,%ebp,1)
21 /randl r32,r/m322/7 AND dword register to r/m dwordandl %ebx,%ecx
andl %ebx,(%ebx,2)
andl %ebx,(%ebx,4)
andl %ebx,(%ebx,%ebp,1)
22 /randb r/m8,r82/6 AND r/m byte to byte registerandb %dl,%bh
andb (%ebx,1),%bh
andb m8(%ebx,1),%bh
andb m8(%ebx,%ebp,1),%bh
23 /randw r/m16,r162/6 AND r/m word to word registerandw %cx,%bx
andw (%ebx,1),%bx
andw (%ebx,2),%bx
andw (%ebx,%ebp,1),%bx
23 /randl r/m32,r322/6 AND r/m dword to dword registerandl %ecx,%ebx
andl (%ebx,2),%ebx
andl (%ebx,4),%ebx
andl (%ebx,%ebp,1),%ebx

Operation




DEST := DEST AND SRC;
CF := 0;
OF := 0;

Description

Each bit of the result of the AND instruction is a 1 if both corresponding bits of the operands are 1; otherwise, it becomes a 0.

Flags Affected

CF := 0, OF := 0; PF, SF, and ZF as described in Appendix C

Protected Mode Exceptions

#GP(0) if the result is in a nonwritable segment; #GP(0) for an illegal memory operand effective address in the CS, DS, ES, FS, or GS segments; #SS(0) for an illegal address in the SS segment; #PF(fault-code) for a page fault

Real Address Mode Exceptions

Interrupt 13 if any part of the operand would lie outside of the effective address space from 0 to 0FFFFH

Virtual 8086 Mode Exceptions

Same exceptions as in Real Address Mode; #PF(fault-code) for a page fault


[Home Page dell'ITIS "Fermi"] [80386 Programmer's Reference Manual Index] [Previous] [Next]