ACALL
ACALL unconditionally calls a subroutine at the indicated
code address. ACALL pushes the address of the instruction that follows ACALL
onto the stack, least-significant-byte first, most-significant-byte second.
The Program Counter is then updated so that program execution continues at
the indicated address.
ADD-ADDC
ADD and ADDC both add the value operand to
the value of the Accumulator, leaving the resulting value in the Accumulator.
The value operand is not affected. ADD and ADDC function identically except
that ADDC adds the value of operand as well as the value of the Carry flag
whereas ADD does not add the Carry flag to the result.
AJMP
AJMP unconditionally jumps to the indicated code address. The
new value for the Program Counter is calculated by replacing the
least-significant-byte of the Program Counter with the second byte of the
AJMP instruction, and replacing bits 0-2 of the most-significant-byte of the
Program Counter with 3 bits that indicate the page of the byte following the AJMP instruction.
Bits 3-7 of the most-significant-byte of the Program Counter remain unchaged.
ANL
ANL does a bitwise "AND" operation between operand1 and operand2,
leaving the resulting value in operand1. The value of operand2 is not affected. A logical
"AND" compares the bits of each operand and sets the corresponding bit in the resulting byte only
if the bit was set in both of the original operands, otherwise the resulting bit is cleared.
CJNE
CJNE compares the value of operand1 and operand2 and branches to
the indicated relative address if operand1 and operand2 are not equal. If the two
operands are equal program flow continues with the instruction following the CJNE instruction.
CLR
CLR clears (sets to 0) all the bit(s) of the indicated register. If the register
is a bit (including the carry bit), only the specified bit is affected. Clearing the Accumulator sets
the Accumulator’s value to 0.
CPL
CPL complements operand, leaving the result in operand. If operand is
a single bit then the state of the bit will be reversed. If operand is the Accumulator
then all the bits in the Accumulator will be reversed. This can be thought of as "Accumulator
Logical Exclusive OR 255" or as "255-Accumulator." If the operand refers to a bit of an output
Port, the value that will be complemented is based on the last value written to that bit, not the last
value read from it.
DA
DA adjusts the contents of the Accumulator to correspond to
a BCD (Binary Coded Decimal) number after two BCD numbers have been added by the
ADD or ADDC instruction. If the carry bit is set or if the value of bits 0-3
exceed 9, 0x06 is added to the accumulator. If the carry bit was set when the
instruction began, or if 0x06 was added to the accumulator in the first step,
0x60 is added to the accumulator.
DEC
DEC decrements the value of register by 1. If the initial value of
register is 0, decrementing the value will cause it to reset to 255 (0xFF Hex). Note:
The Carry Flag is NOT set when the value "rolls over" from 0 to 255.
DIV
Divides the unsigned value of the Accumulator by the unsigned value of
the "B" register. The resulting quotient is placed in the Accumulator and the remainder
is placed in the "B" register.
DJNZ
DJNZ decrements the value of register by 1. If the initial value of register
is 0, decrementing the value will cause it to reset to 255 (0xFF Hex). If the new value of
register is not 0 the program will branch to the address indicated by relative addr. If the new
value of register is 0 program flow continues with the instruction following the DJNZ instruction.
INC
INC increments the value of register by 1. If the initial value of register
is 255 (0xFF Hex), incrementing the value will cause it to reset to 0. Note: The Carry Flag is
NOT set when the value "rolls over" from 255 to 0.
JB
JB branches to the address indicated by reladdr if the bit indicated
by bit addr is set. If the bit is not set program execution continues with the instruction following
the JB instruction.
JBC
JBC will branch to the address indicated by reladdr
if the bit indicated by bit addr is set. Before branching to reladdr the
instruction will clear the indicated bit. If the bit is not set program execution
continues with the instruction following the JBC instruction.
JC
JC will branch to the address indicated by reladdr if the
Carry Bit is set. If the Carry Bit is not set program execution continues with the
instruction following the JC instruction.
JMP
JMP jumps unconditionally to the address represented by the sum of the
value of DPTR and the value of the Accumulator.