5. ANL
ANL <dest-byte>, <src-byte>
Function: Logical-AND for byte variables
Description: ANL performs the bitwise logical-AND operation between the variables indicated and stores the results in the destination variable. No flags are affected. The two operands allow six addressing mode combinations. When the destination is the Accumulator, the source can use register, direct, register-indirect, or immediate addressing; when the destination is a direct address, the source can be the Accumulator or immediate data.
Note: When this instruction is used to modify an output port, the value used as the original port data will be read from the output data latch, not the input pins.
Example: If the Accumulator holds 0C3H (1100001lB), and register 0 holds 55H (01010101B), then the following instruction,
ANL A, R0
leaves 41H (01000001B) in the Accumulator. When the destination is a directly addressed byte, this instruction clears combinations of bits in any RAM location or hardware register. The mask byte determining the pattern of bits to be cleared would either be a constant contained in the instruction or a value computed in the Accumulator at run-time. The following instruction,
ANL P1,#01110011B
clears bits 7, 3, and 2 of output port 1.
ANL A, Rn
Bytes: 1
Cycles: 1
ANL A, direct
Bytes: 2
Cycles: 1
ANL A, @Ri
Bytes: 1
Cycles: 1
ANL A, #data
Bytes: 2
Cycles: 1
ANL direct, A
Bytes: 2
Cycles: 1
ANL direct, #data
Bytes: 3
Cycles: 2