isa: 8051e
source_file: set8051e.html
schema_version: "1.0"
notes[4]: Extracted from the uploaded HTML instruction table.,edited_8051e_form=true marks rows highlighted as edited/new const16 or bit addr16 forms in the source.,deprecated=true marks rows highlighted as removed/deprecated in the source.,"The new_replacement_instructions block is a proposed overlay for the 17 freed opcode slots: 8 AJMP, 8 ACALL, and DA."
instructions_by_class[44]:
- mnemonic_class: ACALL
function: Absolute Call Within 2K Block
syntax: ACALL code address
source_title: "8051 Instruction Set: ACALL"
description: "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. 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 ACALL instruction, and replacing bits 0-2 of the most-significant-byte of the Program Counter with 3 bits that indicate the page. Bits 3-7 of the most-significant-byte of the Program Counter remain unchaged. Since only 11 bits of the Program Counter are affected by ACALL, calls may only be made to routines located within the same 2k block as the first byte that follows ACALL."
methods[8]:
- form: ACALL page0
opcode: 0x11
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page1
opcode: 0x31
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page2
opcode: 0x51
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page3
opcode: 0x71
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page4
opcode: 0x91
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page5
opcode: 0xB1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page6
opcode: 0xD1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: ACALL page7
opcode: 0xF1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- mnemonic_class: "ADD, ADDC"
function: "Add Accumulator, Add Accumulator With Carry"
syntax: "ADD A, operand"
source_title: "8051 Instruction Set: ADD"
description: "Green rows below show the edited const16-address forms that replace legacy 8-bit immediate data. Description: 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. The Carry bit (C) is set if there is a carry-out of bit 7. In other words, if the unsigned summed value of the Accumulator, operand and (in the case of ADDC) the Carry flag exceeds 255 Carry is set. Otherwise, the Carry bit is cleared. The Auxillary Carry (AC) bit is set if there is a carry-out of bit 3. In other words, if the unsigned summed value of the low nibble of the Accumulator, operand and (in the case of ADDC) the Carry flag exceeds 15 the Auxillary Carry flag is set. Otherwise, the Auxillary Carry flag is cleared. The Overflow (OV) bit is set if there is a carry-out of bit 6 or out of bit 7, but not both. In other words, if the addition of the Accumulator, operand and (in the case of ADDC) the Carry flag treated as signed values results in a value that is out of the range of a signed byte (-128 through +127) the Overflow flag is set. Otherwise, the Overflow flag is cleared."
methods[24]:
- form: "ADD A, const addr16"
opcode: 0x24
bytes: 3
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: true
- form: "ADD A, iram addr"
opcode: 0x25
bytes: 2
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,@R0"
opcode: 0x26
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,@R1"
opcode: 0x27
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R0"
opcode: 0x28
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R1"
opcode: 0x29
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R2"
opcode: 0x2A
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R3"
opcode: 0x2B
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R4"
opcode: 0x2C
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R5"
opcode: 0x2D
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R6"
opcode: 0x2E
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADD A,R7"
opcode: 0x2F
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A, const addr16"
opcode: 0x34
bytes: 3
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: true
- form: "ADDC A, iram addr"
opcode: 0x35
bytes: 2
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,@R0"
opcode: 0x36
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,@R1"
opcode: 0x37
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R0"
opcode: 0x38
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R1"
opcode: 0x39
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R2"
opcode: 0x3A
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R3"
opcode: 0x3B
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R4"
opcode: 0x3C
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R5"
opcode: 0x3D
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R6"
opcode: 0x3E
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "ADDC A,R7"
opcode: 0x3F
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- mnemonic_class: AJMP
function: Absolute Jump Within 2K Block
syntax: AJMP code address
source_title: "8051 Instruction Set: AJMP"
description: "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. Since only 11 bits of the Program Counter are affected by AJMP, jumps may only be made to code located within the same 2k block as the first byte that follows AJMP."
methods[8]:
- form: AJMP page0
opcode: 0x01
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page1
opcode: 0x21
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page2
opcode: 0x41
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page3
opcode: 0x61
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page4
opcode: 0x81
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page5
opcode: 0xA1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page6
opcode: 0xC1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- form: AJMP page7
opcode: 0xE1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
- mnemonic_class: ANL
function: Bitwise AND
syntax: "ANL operand1 , operand2"
source_title: "8051 Instruction Set: ANL"
description: "Green rows below show the edited const16-address forms that replace legacy 8-bit immediate data. bit adresable change to 16-bit ANL does a bitwise \"AND\" operation between operand1 and operand2 , 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."
methods[16]:
- form: "ANL iram addr ,A"
opcode: 0x52
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL iram addr , const addr16"
opcode: 0x53
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "ANL A, const addr16"
opcode: 0x54
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "ANL A, iram addr"
opcode: 0x55
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,@R0"
opcode: 0x56
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,@R1"
opcode: 0x57
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R0"
opcode: 0x58
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R1"
opcode: 0x59
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R2"
opcode: 0x5A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R3"
opcode: 0x5B
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R4"
opcode: 0x5C
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R5"
opcode: 0x5D
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R6"
opcode: 0x5E
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL A,R7"
opcode: 0x5F
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ANL C, bit addr16"
opcode: 0x82
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "ANL C,/ bit addr16"
opcode: 0xB0
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- mnemonic_class: CJNE
function: Compare and Jump If Not Equal
syntax: "CJNE operand1 , operand2 , reladdr"
source_title: "8051 Instruction Set: CJNE"
description: "Green rows below show the edited const16-address forms that replace legacy 8-bit immediate data. 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. The Carry bit (C) is set if operand1 is less than operand2 , otherwise it is cleared."
methods[12]:
- form: "CJNE A, const addr16 , reladdr"
opcode: 0xB4
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE A, iram addr , reladdr"
opcode: 0xB5
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: false
- form: "CJNE @R0, const addr16 , reladdr"
opcode: 0xB6
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE @R1, const addr16 , reladdr"
opcode: 0xB7
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R0, const addr16 , reladdr"
opcode: 0xB8
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R1, const addr16 , reladdr"
opcode: 0xB9
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R2, const addr16 , reladdr"
opcode: 0xBA
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R3, const addr16 , reladdr"
opcode: 0xBB
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R4, const addr16 , reladdr"
opcode: 0xBC
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R5, const addr16 , reladdr"
opcode: 0xBD
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R6, const addr16 , reladdr"
opcode: 0xBE
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "CJNE R7, const addr16 , reladdr"
opcode: 0xBF
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
- mnemonic_class: CLR
function: Clear Register
syntax: CLR register
source_title: "8051 Instruction Set: CLR"
description: "Green rows below show the edited 16bit-address forms that replace legacy 8-bit bitadresseble adress 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."
methods[3]:
- form: CLR bit addr16
opcode: 0xC2
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: CLR C
opcode: 0xC3
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- form: CLR A
opcode: 0xE4
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: CPL
function: Complement Register
syntax: CPL operand
source_title: "8051 Instruction Set: CPL"
description: "Green rows below show the edited 16bit-address forms that replace legacy 8-bit bitadresseble adress 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."
methods[3]:
- form: CPL A
opcode: 0xF4
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: CPL C
opcode: 0xB3
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- form: CPL bit addr16
opcode: 0xB2
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: DA
function: Decimal Adjust Accumulator
syntax: DA A
source_title: "8051 Instruction Set: DA"
description: "Depricated instruction moved to TDM 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. The Carry bit (C) is set if the resulting value is greater than 0x99, otherwise it is cleared."
methods[1]:
- form: DA
opcode: 0xD4
bytes: 1
flags[1]: C
deprecated: true
edited_8051e_form: false
- mnemonic_class: DEC
function: Decrement Register
syntax: DEC register
source_title: "8051 Instruction Set: DEC"
description: "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."
methods[12]:
- form: DEC A
opcode: 0x14
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC iram addr
opcode: 0x15
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC @R0
opcode: 0x16
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC @R1
opcode: 0x17
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R0
opcode: 0x18
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R1
opcode: 0x19
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R2
opcode: 0x1A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R3
opcode: 0x1B
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R4
opcode: 0x1C
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R5
opcode: 0x1D
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R6
opcode: 0x1E
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: DEC R7
opcode: 0x1F
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: DIV
function: Divide Accumulator by B
syntax: DIV AB
source_title: "8051 Instruction Set: DIV"
description: "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. The Carry flag (C) is always cleared. The Overflow flag (OV) is set if division by 0 was attempted, otherwise it is cleared."
methods[1]:
- form: DIV AB
opcode: 0x84
bytes: 1
flags[2]: C,OV
deprecated: false
edited_8051e_form: false
- mnemonic_class: DJNZ
function: Decrement and Jump if Not Zero
syntax: "DJNZ register , reladdr"
source_title: "8051 Instruction Set: DJNZ"
description: "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."
methods[9]:
- form: "DJNZ iram addr , reladdr"
opcode: 0xD5
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R0, reladdr"
opcode: 0xD8
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R1, reladdr"
opcode: 0xD9
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R2, reladdr"
opcode: 0xDA
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R3, reladdr"
opcode: 0xDB
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R4, reladdr"
opcode: 0xDC
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R5, reladdr"
opcode: 0xDD
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R6, reladdr"
opcode: 0xDE
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "DJNZ R7, reladdr"
opcode: 0xDF
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: INC
function: Increment Register
syntax: INC register
source_title: "8051 Instruction Set: INC"
description: "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. In the case of \"INC DPTR\", the value two-byte unsigned integer value of DPTR is incremented. If the initial value of DPTR is 65535 (0xFFFF Hex), incrementing the value will cause it to reset to 0. Again, the Carry Flag is NOT set when the value of DPTR \"rolls over\" from 65535 to 0."
methods[13]:
- form: INC A
opcode: 0x04
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC iram addr
opcode: 0x05
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC @R0
opcode: 0x06
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC @R1
opcode: 0x07
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R0
opcode: 0x08
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R1
opcode: 0x09
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R2
opcode: 0x0A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R3
opcode: 0x0B
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R4
opcode: 0x0C
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R5
opcode: 0x0D
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R6
opcode: 0x0E
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC R7
opcode: 0x0F
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: INC DPTR
opcode: 0xA3
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: JB
function: Jump if Bit Set
syntax: "JB bit addr , reladdr"
source_title: "8051 Instruction Set: JB"
description: Green rows below show the edited 16bit-address forms that replace legacy 8-bit bitadresseble adress 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.
methods[1]:
- form: "JB bit addr16 , reladdr"
opcode: 0x20
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: JBC
function: Jump if Bit Set and Clear Bit
syntax: "JB bit addr , reladdr"
source_title: "8051 Instruction Set: JBC"
description: Green rows below show the edited 16bit-address forms that replace legacy 8-bit bitadresseble adress 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.
methods[1]:
- form: "JBC bit addr16 , reladdr"
opcode: 0x10
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: JC
function: Jump if Carry Set
syntax: JC reladdr
source_title: "8051 Instruction Set: JC"
description: 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.
methods[1]:
- form: JC reladdr
opcode: 0x40
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: JMP
function: Jump to Data Pointer
syntax: JMP DPTR
source_title: "8051 Instruction Set: JMP"
description: Green rows below show the edited JMP jumps unconditionally to the address represented by the sum of the value of DPTR
methods[1]:
- form: JMP DPTR
opcode: 0x73
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: JNB
function: Jump if Bit Not Set
syntax: "JNB bit addr , reladdr"
source_title: "8051 Instruction Set: JNB"
description: Green rows below show the edited 16bit-address forms that replace legacy 8-bit bitadresseble adress JNB will branch to the address indicated by reladdress if the indicated bit is not set. If the bit is set program execution continues with the instruction following the JNB instruction.
methods[1]:
- form: "JNB bit addr16 , reladdr"
opcode: 0x30
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: JNC
function: Jump if Carry Not Set
syntax: JNC reladdr
source_title: "8051 Instruction Set: JNC"
description: JNC branches to the address indicated by reladdr if the carry bit is not set. If the carry bit is set program execution continues with the instruction following the JNB instruction.
methods[1]:
- form: JNC reladdr
opcode: 0x50
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: JNZ
function: Jump if Accumulator Not Zero
syntax: JNZ reladdr
source_title: "8051 Instruction Set: JNZ"
description: JNZ will branch to the address indicated by reladdr if the Accumulator contains any value except 0. If the value of the Accumulator is zero program execution continues with the instruction following the JNZ instruction.
methods[1]:
- form: JNZ reladdr
opcode: 0x70
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: JZ
function: Jump if Accumulator Zero
syntax: JNZ reladdr
source_title: "8051 Instruction Set: JZ"
description: JZ branches to the address indicated by reladdr if the Accumulator contains the value 0. If the value of the Accumulator is non-zero program execution continues with the instruction following the JNZ instruction.
methods[1]:
- form: JZ reladdr
opcode: 0x60
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: LCALL
function: Long Call
syntax: LCALL code addr
source_title: "8051 Instruction Set: LCALL"
description: "LCALL calls a program subroutine. LCALL increments the program counter by 3 (to point to the instruction following LCALL) and pushes that value onto the stack (low byte first, high byte second). The Program Counter is then set to the 16-bit value which follows the LCALL opcode, causing program execution to continue at that address."
methods[1]:
- form: LCALL code addr
opcode: 0x12
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: LJMP
function: Long Jump
syntax: LJMP code addr
source_title: "8051 Instruction Set: LJMP"
description: LJMP jumps unconditionally to the specified code addr .
methods[1]:
- form: LJMP code addr
opcode: 0x02
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: MOV
function: Deterministic Data Transfer Within Writable Memory Domains
syntax: "MOV destination , source"
source_title: "8051e Instruction Set: MOV"
description: "MOV transfers data between writable architectural destinations and sources inside the standard writable domains of 8051e, including: - Internal RAM (IRAM) - Register file (A, R0-R7, DPTR) - Bit-addressable control space MOV does not read from CONST read-only memory. Read-only constant access is handled exclusively by the MOVC instruction class. TDM-constrained pointer transfer: The form MOV DPTR,A is permitted only when the Accumulator carries a structured value accepted by TDM. Valid interpretations are: - 3*8-bit vector - 2*8-bit vector - 1*16-bit value Arbitrary 32-bit interpretation of A is not permitted for DPTR transfer. Bit-transfer forms affect flags only when interacting with the Carry flag (C) or PSW."
methods[46]:
- form: "MOV @R0,A"
opcode: 0xF6
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV @R1,A"
opcode: 0xF7
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV @R0, iram addr"
opcode: 0xA6
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV @R1, iram addr"
opcode: 0xA7
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,@R0"
opcode: 0xE6
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,@R1"
opcode: 0xE7
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R0"
opcode: 0xE8
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R1"
opcode: 0xE9
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R2"
opcode: 0xEA
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R3"
opcode: 0xEB
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R4"
opcode: 0xEC
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R5"
opcode: 0xED
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R6"
opcode: 0xEE
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A,R7"
opcode: 0xEF
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV A, iram addr"
opcode: 0xE5
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV C, bit addr16"
opcode: 0xA2
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "MOV DPTR, A"
opcode: 0x83
bytes: 1
flags[3]: TDM 3*8,TDM 2*8,TDM 1*16
deprecated: false
edited_8051e_form: true
- form: "MOV R0,A"
opcode: 0xF8
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R1,A"
opcode: 0xF9
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R2,A"
opcode: 0xFA
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R3,A"
opcode: 0xFB
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R4,A"
opcode: 0xFC
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R5,A"
opcode: 0xFD
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R6,A"
opcode: 0xFE
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R7,A"
opcode: 0xFF
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R0, iram addr"
opcode: 0xA8
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R1, iram addr"
opcode: 0xA9
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R2, iram addr"
opcode: 0xAA
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R3, iram addr"
opcode: 0xAB
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R4, iram addr"
opcode: 0xAC
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R5, iram addr"
opcode: 0xAD
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R6, iram addr"
opcode: 0xAE
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV R7, iram addr"
opcode: 0xAF
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV bit addr16 ,C"
opcode: 0x92
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOV iram addr ,@R0"
opcode: 0x86
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,@R1"
opcode: 0x87
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R0"
opcode: 0x88
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R1"
opcode: 0x89
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R2"
opcode: 0x8A
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R3"
opcode: 0x8B
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R4"
opcode: 0x8C
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R5"
opcode: 0x8D
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R6"
opcode: 0x8E
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,R7"
opcode: 0x8F
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr ,A"
opcode: 0xF5
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOV iram addr , iram addr"
opcode: 0x85
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: MOVC
function: Deterministic Read from Constant Read-Only Memory
syntax: "MOVC destination , const_source"
source_title: "8051e Instruction Set: MOVC"
description: "MOVC is the dedicated 8051e instruction class for deterministic reads from CONST read-only memory. MOVC transfers immutable data from the CONST domain into writable destinations such as: - Accumulator (A) - general registers (R0-R7) - Internal RAM - DPTR The legacy addressing forms - MOVC A,@A+PC - MOVC A,@A+DPTR are removed and no longer supported. These legacy forms depended on implicit address generation and mixed executable code with read-only data access. In 8051e, MOVC is restricted to the dedicated CONST memory domain and uses only explicit deterministic addressing. Supported 8051e MOVC access classes are: - direct CONST access through const addr16 - dynamic CONST read through DPTR-based explicit access, where defined by TDM TDM-constrained dynamic read: For MOVC A,DPTR , the data width and interpretation are constrained by TDM. Allowed result forms are: - 2*8-bit - 1*16-bit For MOVC DPTR,const addr16 , the loaded pointer representation must satisfy: - 3*8-bit - 2*8-bit - 1*16-bit MOVC preserves strict separation between: - CODE - CONST - DATA and provides an analyzable, deterministic path for all read-only constant access."
methods[16]:
- form: "MOVC A,@A+PC"
opcode: 0x83
bytes: 1
flags[0]:
deprecated: true
edited_8051e_form: false
- form: "MOVC A,@A+DPTR"
opcode: 0x93
bytes: 1
flags[0]:
deprecated: true
edited_8051e_form: false
- form: "MOVC @R0, const addr16"
opcode: 0x76
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC @R1, const addr16"
opcode: 0x77
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC A, const addr16"
opcode: 0x74
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC DPTR, const addr16"
opcode: 0x90
bytes: 3
flags[3]: TDM 3*8,TDM 2*8,TDM 1*16
deprecated: false
edited_8051e_form: true
- form: "MOVC A, DPTR"
opcode: 0x93
bytes: 1
flags[2]: TDM 2*8,TDM 1*16
deprecated: false
edited_8051e_form: true
- form: "MOVC R0, const addr16"
opcode: 0x78
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R1, const addr16"
opcode: 0x79
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R2, const addr16"
opcode: 0x7A
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R3, const addr16"
opcode: 0x7B
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R4, const addr16"
opcode: 0x7C
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R5, const addr16"
opcode: 0x7D
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R6, const addr16"
opcode: 0x7E
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC R7, const addr16"
opcode: 0x7F
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVC iram addr , const addr16"
opcode: 0x75
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: MOVX
function: Move Data To/From External Memory (XRAM)
syntax: "MOVX operand1 , operand2"
source_title: "8051 Instruction Set: MOVX"
description: "MOVX moves a byte to or from External Memory into or from the Accumulator. If operand1 is @DPTR, the Accumulator is moved to the 16-bit External Memory address indicated by DPTR. This instruction uses both P0 (port 0) and P2 (port 2) to output the 16-bit address and data. If operand2 is DPTR then the byte is moved from External Memory into the Accumulator. If operand1 is @R0 or @R1, the Accumulator is moved to the 8-bit External Memory address indicated by the specified Register. This instruction uses only P0 (port 0) to output the 8-bit address and data. P2 (port 2) is not affected. If operand2 is @R0 or @R1 then the byte is moved from External Memory into the Accumulator."
methods[6]:
- form: "MOVX @DPTR,A"
opcode: 0xF0
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOVX @R0,A"
opcode: 0xF2
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOVX @R1,A"
opcode: 0xF3
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOVX A,@DPTR"
opcode: 0xE0
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOVX A,@R0"
opcode: 0xE2
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "MOVX A,@R1"
opcode: 0xE3
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: MUL
function: Multiply Accumulator by B
syntax: MUL AB
source_title: "8051 Instruction Set: MUL"
description: "Multiples the unsigned value of the Accumulator by the unsigned value of the \"B\" register. The least significant byte of the result is placed in the Accumulator and the most-significant-byte is placed in the \"B\" register. The Carry Flag (C) is always cleared. The Overflow Flag (OV) is set if the result is greater than 255 (if the most-significant byte is not zero), otherwise it is cleared."
methods[1]:
- form: MUL AB
opcode: 0xA4
bytes: 1
flags[2]: C,OV
deprecated: false
edited_8051e_form: false
- mnemonic_class: NOP
function: "None, waste time"
syntax: No Operation
source_title: "8051 Instruction Set: NOP"
description: "NOP, as it's name suggests, causes No Operation to take place for one machine cycle. NOP is generally used only for timing purposes. Absolutely no flags or registers are affected."
methods[1]:
- form: NOP
opcode: 0x00
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: ORL
function: Bitwise OR
syntax: "ORL operand1 , operand2"
source_title: "8051 Instruction Set: ORL"
description: "Green rows below show the edited const16-address forms that replace legacy 8-bit immediate data. ORL does a bitwise \"OR\" operation between operand1 and operand2 , leaving the resulting value in operand1. The value of operand2 is not affected. A logical \"OR\" compares the bits of each operand and sets the corresponding bit in the resulting byte if the bit was set in either of the original operands, otherwise the resulting bit is cleared."
methods[16]:
- form: "ORL iram addr ,A"
opcode: 0x42
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL iram addr , const addr16"
opcode: 0x43
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "ORL A, const addr16"
opcode: 0x44
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "ORL A, iram addr"
opcode: 0x45
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,@R0"
opcode: 0x46
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,@R1"
opcode: 0x47
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R0"
opcode: 0x48
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R1"
opcode: 0x49
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R2"
opcode: 0x4A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R3"
opcode: 0x4B
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R4"
opcode: 0x4C
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R5"
opcode: 0x4D
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R6"
opcode: 0x4E
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL A,R7"
opcode: 0x4F
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "ORL C, bit addr16"
opcode: 0x72
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "ORL C,/ bit addr16"
opcode: 0xA0
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- mnemonic_class: POP
function: Pop Value From Stack
syntax: POP
source_title: "8051 Instruction Set: POP"
description: "POP \"pops\" the last value placed on the stack into the iram addr specified. In other words, POP will load iram addr with the value of the Internal RAM address pointed to by the current Stack Pointer. The stack pointer is then decremented by 1."
methods[1]:
- form: POP iram addr
opcode: 0xD0
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: PUSH
function: Push Value Onto Stack
syntax: PUSH
source_title: "8051 Instruction Set: PUSH"
description: "PUSH \"pushes\" the value of the specified iram addr onto the stack. PUSH first increments the value of the Stack Pointer by 1, then takes the value stored in iram addr and stores it in Internal RAM at the location pointed to by the incremented Stack Pointer."
methods[1]:
- form: PUSH iram addr
opcode: 0xC0
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: RET
function: Return From Subroutine
syntax: RET
source_title: "8051 Instruction Set: RET"
description: "RET is used to return from a subroutine previously called by LCALL or ACALL. Program execution continues at the address that is calculated by popping the topmost 2 bytes off the stack. The most-significant-byte is popped off the stack first, followed by the least-significant-byte."
methods[1]:
- form: RET
opcode: 0x22
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: RETI
function: Return From Interrupt
syntax: RETI
source_title: "8051 Instruction Set: RETI"
description: "RETI is used to return from an interrupt service routine. RETI first enables interrupts of equal and lower priorities to the interrupt that is terminating. Program execution continues at the address that is calculated by popping the topmost 2 bytes off the stack. The most-significant-byte is popped off the stack first, followed by the least-significant-byte. RETI functions identically to RET if it is executed outside of an interrupt service routine."
methods[1]:
- form: RETI
opcode: 0x32
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: RL
function: Rotate Accumulator Left
syntax: RL A
source_title: "8051 Instruction Set: RL"
description: Shifts the bits of the Accumulator to the left. The left-most bit (bit 7) of the Accumulator is loaded into bit 0.
methods[1]:
- form: RL A
opcode: 0x23
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- mnemonic_class: RLC
function: Rotate Accumulator Left Through Carry
syntax: RLC A
source_title: "8051 Instruction Set: RLC"
description: "Shifts the bits of the Accumulator to the left. The left-most bit (bit 7) of the Accumulator is loaded into the Carry Flag, and the original Carry Flag is loaded into bit 0 of the Accumulator. This function can be used to quickly multiply a byte by 2."
methods[1]:
- form: RLC A
opcode: 0x33
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- mnemonic_class: RR
function: Rotate Accumulator Right
syntax: RR A
source_title: "8051 Instruction Set: RR"
description: Shifts the bits of the Accumulator to the right. The right-most bit (bit 0) of the Accumulator is loaded into bit 7.
methods[1]:
- form: RR A
opcode: 0x03
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: RRC
function: Rotate Accumulator Right Through Carry
syntax: RRC A
source_title: "8051 Instruction Set: RRC"
description: "Shifts the bits of the Accumulator to the right. The right-most bit (bit 0) of the Accumulator is loaded into the Carry Flag, and the original Carry Flag is loaded into bit 7. This function can be used to quickly divide a byte by 2."
methods[1]:
- form: RRC A
opcode: 0x13
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- mnemonic_class: SETB
function: Set Bit
syntax: SETB bit addr
source_title: "8051 Instruction Set: SETB"
description: Sets the specified bit.
methods[2]:
- form: SETB C
opcode: 0xD3
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- form: SETB bit addr16
opcode: 0xD2
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: SJMP
function: Short Jump
syntax: SJMP reladdr
source_title: "8051 Instruction Set: SJMP"
description: SJMP jumps unconditionally to the address specified reladdr . Reladdr must be within -128 or +127 bytes of the instruction that follows the SJMP instruction.
methods[1]:
- form: SJMP reladdr
opcode: 0x80
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: SUBB
function: Subtract from Accumulator With Borrow
syntax: "SUBB A, operand"
source_title: "8051 Instruction Set: SUBB"
description: "Green rows below show the edited const16-address forms that replace legacy 8-bit immediate data. SUBB subtract the value of operand and the Carry Flag from the value of the Accumulator, leaving the resulting value in the Accumulator. The value operand is not affected. The Carry Bit (C) is set if a borrow was required for bit 7, otherwise it is cleared. In other words, if the unsigned value being subtracted is greater than the Accumulator the Carry Flag is set. The Auxillary Carry (AC) bit is set if a borrow was required for bit 3, otherwise it is cleared. In other words, the bit is set if the low nibble of the value being subtracted was greater than the low nibble of the Accumulator. The Overflow (OV) bit is set if a borrow was required for bit 6 or for bit 7, but not both. In other words, the subtraction of two signed bytes resulted in a value outside the range of a signed byte (-128 to 127). Otherwise it is cleared."
methods[12]:
- form: "SUBB A, const addr16"
opcode: 0x94
bytes: 3
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: true
- form: "SUBB A, iram addr"
opcode: 0x95
bytes: 2
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,@R0"
opcode: 0x96
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,@R1"
opcode: 0x97
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R0"
opcode: 0x98
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R1"
opcode: 0x99
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R2"
opcode: 0x9A
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R3"
opcode: 0x9B
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R4"
opcode: 0x9C
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R5"
opcode: 0x9D
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R6"
opcode: 0x9E
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- form: "SUBB A,R7"
opcode: 0x9F
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
- mnemonic_class: SWAP
function: Swap Accumulator Nibbles
syntax: SWAP A
source_title: "8051 Instruction Set: SWAP"
description: "SWAP swaps bits 0-3 of the Accumulator with bits 4-7 of the Accumulator. This instruction is identical to executing \"RR A\" or \"RL A\" four times."
methods[1]:
- form: SWAP A
opcode: 0xC4
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: Undefined Instruction
function: Undefined
syntax: ???
source_title: "8051 Instruction Set: Undefined Instruction"
description: "The \"Undefined\" instruction is, as the name suggests, not a documented instruction. The 8051 supports 255 instructions and OpCode 0xA5 is the single OpCode that is not used by any documented function. Since it is not documented nor defined it is not recommended that it be executed. However, based on my research, executing this undefined instruction takes 1 machine cycle and appears to have no effect on the system except that the Carry Bit always seems to be set."
methods[1]:
- form: ???
opcode: 0xA5
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
- mnemonic_class: XCH
function: Exchange Bytes
syntax: "XCH A, register"
source_title: "8051 Instruction Set: XCH"
description: Exchanges the value of the Accumulator with the value contained in register .
methods[11]:
- form: "XCH A,@R0"
opcode: 0xC6
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,@R1"
opcode: 0xC7
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R0"
opcode: 0xC8
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R1"
opcode: 0xC9
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R2"
opcode: 0xCA
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R3"
opcode: 0xCB
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R4"
opcode: 0xCC
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R5"
opcode: 0xCD
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R6"
opcode: 0xCE
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A,R7"
opcode: 0xCF
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCH A, iram addr"
opcode: 0xC5
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: XCHD
function: Exchange Digit
syntax: "XCHD A, [@R0/@R1]"
source_title: "8051 Instruction Set: XCHD"
description: Exchanges bits 0-3 of the Accumulator with bits 0-3 of the Internal RAM address pointed to indirectly by R0 or R1. Bits 4-7 of each register are unaffected.
methods[2]:
- form: "XCHD A,@R0"
opcode: 0xD6
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XCHD A,@R1"
opcode: 0xD7
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- mnemonic_class: XRL
function: Bitwise Exclusive OR
syntax: "XRL operand1 , operand2"
source_title: "8051 Instruction Set: XRL"
description: "Green rows below show the edited const16-address forms that replace legacy 8-bit immediate data. XRL does a bitwise \"EXCLUSIVE OR\" operation between operand1 and operand2 , leaving the resulting value in operand1 . The value of operand2 is not affected. A logical \"EXCLUSIVE OR\" compares the bits of each operand and sets the corresponding bit in the resulting byte if the bit was set in either (but not both) of the original operands, otherwise the bit is cleared."
methods[14]:
- form: "XRL iram addr ,A"
opcode: 0x62
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL iram addr , const addr16"
opcode: 0x63
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "XRL A, const addr16"
opcode: 0x64
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "XRL A, iram addr"
opcode: 0x65
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,@R0"
opcode: 0x66
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,@R1"
opcode: 0x67
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R0"
opcode: 0x68
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R1"
opcode: 0x69
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R2"
opcode: 0x6A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R3"
opcode: 0x6B
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R4"
opcode: 0x6C
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R5"
opcode: 0x6D
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R6"
opcode: 0x6E
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
- form: "XRL A,R7"
opcode: 0x6F
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
opcode_map_from_source:
"0x00":
mnemonic_class: NOP
form: NOP
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x01":
mnemonic_class: AJMP
form: AJMP page0
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x02":
mnemonic_class: LJMP
form: LJMP code addr
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
"0x03":
mnemonic_class: RR
form: RR A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x04":
mnemonic_class: INC
form: INC A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x05":
mnemonic_class: INC
form: INC iram addr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x06":
mnemonic_class: INC
form: INC @R0
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x07":
mnemonic_class: INC
form: INC @R1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x08":
mnemonic_class: INC
form: INC R0
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x09":
mnemonic_class: INC
form: INC R1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x0A":
mnemonic_class: INC
form: INC R2
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x0B":
mnemonic_class: INC
form: INC R3
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x0C":
mnemonic_class: INC
form: INC R4
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x0D":
mnemonic_class: INC
form: INC R5
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x0E":
mnemonic_class: INC
form: INC R6
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x0F":
mnemonic_class: INC
form: INC R7
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x10":
mnemonic_class: JBC
form: "JBC bit addr16 , reladdr"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x11":
mnemonic_class: ACALL
form: ACALL page0
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x12":
mnemonic_class: LCALL
form: LCALL code addr
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
"0x13":
mnemonic_class: RRC
form: RRC A
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0x14":
mnemonic_class: DEC
form: DEC A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x15":
mnemonic_class: DEC
form: DEC iram addr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x16":
mnemonic_class: DEC
form: DEC @R0
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x17":
mnemonic_class: DEC
form: DEC @R1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x18":
mnemonic_class: DEC
form: DEC R0
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x19":
mnemonic_class: DEC
form: DEC R1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x1A":
mnemonic_class: DEC
form: DEC R2
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x1B":
mnemonic_class: DEC
form: DEC R3
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x1C":
mnemonic_class: DEC
form: DEC R4
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x1D":
mnemonic_class: DEC
form: DEC R5
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x1E":
mnemonic_class: DEC
form: DEC R6
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x1F":
mnemonic_class: DEC
form: DEC R7
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x20":
mnemonic_class: JB
form: "JB bit addr16 , reladdr"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x21":
mnemonic_class: AJMP
form: AJMP page1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x22":
mnemonic_class: RET
form: RET
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x23":
mnemonic_class: RL
form: RL A
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0x24":
mnemonic_class: "ADD, ADDC"
form: "ADD A, const addr16"
bytes: 3
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: true
"0x25":
mnemonic_class: "ADD, ADDC"
form: "ADD A, iram addr"
bytes: 2
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x26":
mnemonic_class: "ADD, ADDC"
form: "ADD A,@R0"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x27":
mnemonic_class: "ADD, ADDC"
form: "ADD A,@R1"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x28":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R0"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x29":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R1"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x2A":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R2"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x2B":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R3"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x2C":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R4"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x2D":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R5"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x2E":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R6"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x2F":
mnemonic_class: "ADD, ADDC"
form: "ADD A,R7"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x30":
mnemonic_class: JNB
form: "JNB bit addr16 , reladdr"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x31":
mnemonic_class: ACALL
form: ACALL page1
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x32":
mnemonic_class: RETI
form: RETI
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x33":
mnemonic_class: RLC
form: RLC A
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0x34":
mnemonic_class: "ADD, ADDC"
form: "ADDC A, const addr16"
bytes: 3
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: true
"0x35":
mnemonic_class: "ADD, ADDC"
form: "ADDC A, iram addr"
bytes: 2
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x36":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,@R0"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x37":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,@R1"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x38":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R0"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x39":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R1"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x3A":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R2"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x3B":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R3"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x3C":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R4"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x3D":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R5"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x3E":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R6"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x3F":
mnemonic_class: "ADD, ADDC"
form: "ADDC A,R7"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x40":
mnemonic_class: JC
form: JC reladdr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x41":
mnemonic_class: AJMP
form: AJMP page2
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x42":
mnemonic_class: ORL
form: "ORL iram addr ,A"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x43":
mnemonic_class: ORL
form: "ORL iram addr , const addr16"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x44":
mnemonic_class: ORL
form: "ORL A, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x45":
mnemonic_class: ORL
form: "ORL A, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x46":
mnemonic_class: ORL
form: "ORL A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x47":
mnemonic_class: ORL
form: "ORL A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x48":
mnemonic_class: ORL
form: "ORL A,R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x49":
mnemonic_class: ORL
form: "ORL A,R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x4A":
mnemonic_class: ORL
form: "ORL A,R2"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x4B":
mnemonic_class: ORL
form: "ORL A,R3"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x4C":
mnemonic_class: ORL
form: "ORL A,R4"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x4D":
mnemonic_class: ORL
form: "ORL A,R5"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x4E":
mnemonic_class: ORL
form: "ORL A,R6"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x4F":
mnemonic_class: ORL
form: "ORL A,R7"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x50":
mnemonic_class: JNC
form: JNC reladdr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x51":
mnemonic_class: ACALL
form: ACALL page2
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x52":
mnemonic_class: ANL
form: "ANL iram addr ,A"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x53":
mnemonic_class: ANL
form: "ANL iram addr , const addr16"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x54":
mnemonic_class: ANL
form: "ANL A, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x55":
mnemonic_class: ANL
form: "ANL A, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x56":
mnemonic_class: ANL
form: "ANL A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x57":
mnemonic_class: ANL
form: "ANL A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x58":
mnemonic_class: ANL
form: "ANL A,R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x59":
mnemonic_class: ANL
form: "ANL A,R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x5A":
mnemonic_class: ANL
form: "ANL A,R2"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x5B":
mnemonic_class: ANL
form: "ANL A,R3"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x5C":
mnemonic_class: ANL
form: "ANL A,R4"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x5D":
mnemonic_class: ANL
form: "ANL A,R5"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x5E":
mnemonic_class: ANL
form: "ANL A,R6"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x5F":
mnemonic_class: ANL
form: "ANL A,R7"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x60":
mnemonic_class: JZ
form: JZ reladdr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x61":
mnemonic_class: AJMP
form: AJMP page3
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x62":
mnemonic_class: XRL
form: "XRL iram addr ,A"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x63":
mnemonic_class: XRL
form: "XRL iram addr , const addr16"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x64":
mnemonic_class: XRL
form: "XRL A, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x65":
mnemonic_class: XRL
form: "XRL A, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x66":
mnemonic_class: XRL
form: "XRL A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x67":
mnemonic_class: XRL
form: "XRL A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x68":
mnemonic_class: XRL
form: "XRL A,R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x69":
mnemonic_class: XRL
form: "XRL A,R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x6A":
mnemonic_class: XRL
form: "XRL A,R2"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x6B":
mnemonic_class: XRL
form: "XRL A,R3"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x6C":
mnemonic_class: XRL
form: "XRL A,R4"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x6D":
mnemonic_class: XRL
form: "XRL A,R5"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x6E":
mnemonic_class: XRL
form: "XRL A,R6"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x6F":
mnemonic_class: XRL
form: "XRL A,R7"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0x70":
mnemonic_class: JNZ
form: JNZ reladdr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x71":
mnemonic_class: ACALL
form: ACALL page3
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x72":
mnemonic_class: ORL
form: "ORL C, bit addr16"
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
"0x73":
mnemonic_class: JMP
form: JMP DPTR
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
"0x74":
mnemonic_class: MOVC
form: "MOVC A, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x75":
mnemonic_class: MOVC
form: "MOVC iram addr , const addr16"
bytes: 4
flags[0]:
deprecated: false
edited_8051e_form: true
"0x76":
mnemonic_class: MOVC
form: "MOVC @R0, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x77":
mnemonic_class: MOVC
form: "MOVC @R1, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x78":
mnemonic_class: MOVC
form: "MOVC R0, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x79":
mnemonic_class: MOVC
form: "MOVC R1, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x7A":
mnemonic_class: MOVC
form: "MOVC R2, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x7B":
mnemonic_class: MOVC
form: "MOVC R3, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x7C":
mnemonic_class: MOVC
form: "MOVC R4, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x7D":
mnemonic_class: MOVC
form: "MOVC R5, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x7E":
mnemonic_class: MOVC
form: "MOVC R6, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x7F":
mnemonic_class: MOVC
form: "MOVC R7, const addr16"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x80":
mnemonic_class: SJMP
form: SJMP reladdr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x81":
mnemonic_class: AJMP
form: AJMP page4
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x82":
mnemonic_class: ANL
form: "ANL C, bit addr16"
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
"0x83":
mnemonic_class: MOVC
form: "MOVC A,@A+PC"
bytes: 1
flags[0]:
deprecated: true
edited_8051e_form: false
"0x84":
mnemonic_class: DIV
form: DIV AB
bytes: 1
flags[2]: C,OV
deprecated: false
edited_8051e_form: false
"0x85":
mnemonic_class: MOV
form: "MOV iram addr , iram addr"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
"0x86":
mnemonic_class: MOV
form: "MOV iram addr ,@R0"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x87":
mnemonic_class: MOV
form: "MOV iram addr ,@R1"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x88":
mnemonic_class: MOV
form: "MOV iram addr ,R0"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x89":
mnemonic_class: MOV
form: "MOV iram addr ,R1"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x8A":
mnemonic_class: MOV
form: "MOV iram addr ,R2"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x8B":
mnemonic_class: MOV
form: "MOV iram addr ,R3"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x8C":
mnemonic_class: MOV
form: "MOV iram addr ,R4"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x8D":
mnemonic_class: MOV
form: "MOV iram addr ,R5"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x8E":
mnemonic_class: MOV
form: "MOV iram addr ,R6"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x8F":
mnemonic_class: MOV
form: "MOV iram addr ,R7"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0x90":
mnemonic_class: MOVC
form: "MOVC DPTR, const addr16"
bytes: 3
flags[3]: TDM 3*8,TDM 2*8,TDM 1*16
deprecated: false
edited_8051e_form: true
"0x91":
mnemonic_class: ACALL
form: ACALL page4
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0x92":
mnemonic_class: MOV
form: "MOV bit addr16 ,C"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0x93":
mnemonic_class: MOVC
form: "MOVC A, DPTR"
bytes: 1
flags[2]: TDM 2*8,TDM 1*16
deprecated: false
edited_8051e_form: true
"0x94":
mnemonic_class: SUBB
form: "SUBB A, const addr16"
bytes: 3
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: true
"0x95":
mnemonic_class: SUBB
form: "SUBB A, iram addr"
bytes: 2
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x96":
mnemonic_class: SUBB
form: "SUBB A,@R0"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x97":
mnemonic_class: SUBB
form: "SUBB A,@R1"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x98":
mnemonic_class: SUBB
form: "SUBB A,R0"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x99":
mnemonic_class: SUBB
form: "SUBB A,R1"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x9A":
mnemonic_class: SUBB
form: "SUBB A,R2"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x9B":
mnemonic_class: SUBB
form: "SUBB A,R3"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x9C":
mnemonic_class: SUBB
form: "SUBB A,R4"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x9D":
mnemonic_class: SUBB
form: "SUBB A,R5"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x9E":
mnemonic_class: SUBB
form: "SUBB A,R6"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0x9F":
mnemonic_class: SUBB
form: "SUBB A,R7"
bytes: 1
flags[3]: C,AC,OV
deprecated: false
edited_8051e_form: false
"0xA0":
mnemonic_class: ORL
form: "ORL C,/ bit addr16"
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xA1":
mnemonic_class: AJMP
form: AJMP page5
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0xA2":
mnemonic_class: MOV
form: "MOV C, bit addr16"
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xA3":
mnemonic_class: INC
form: INC DPTR
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xA4":
mnemonic_class: MUL
form: MUL AB
bytes: 1
flags[2]: C,OV
deprecated: false
edited_8051e_form: false
"0xA5":
mnemonic_class: Undefined Instruction
form: ???
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0xA6":
mnemonic_class: MOV
form: "MOV @R0, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xA7":
mnemonic_class: MOV
form: "MOV @R1, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xA8":
mnemonic_class: MOV
form: "MOV R0, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xA9":
mnemonic_class: MOV
form: "MOV R1, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xAA":
mnemonic_class: MOV
form: "MOV R2, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xAB":
mnemonic_class: MOV
form: "MOV R3, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xAC":
mnemonic_class: MOV
form: "MOV R4, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xAD":
mnemonic_class: MOV
form: "MOV R5, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xAE":
mnemonic_class: MOV
form: "MOV R6, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xAF":
mnemonic_class: MOV
form: "MOV R7, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xB0":
mnemonic_class: ANL
form: "ANL C,/ bit addr16"
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xB1":
mnemonic_class: ACALL
form: ACALL page5
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0xB2":
mnemonic_class: CPL
form: CPL bit addr16
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0xB3":
mnemonic_class: CPL
form: CPL C
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0xB4":
mnemonic_class: CJNE
form: "CJNE A, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xB5":
mnemonic_class: CJNE
form: "CJNE A, iram addr , reladdr"
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: false
"0xB6":
mnemonic_class: CJNE
form: "CJNE @R0, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xB7":
mnemonic_class: CJNE
form: "CJNE @R1, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xB8":
mnemonic_class: CJNE
form: "CJNE R0, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xB9":
mnemonic_class: CJNE
form: "CJNE R1, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xBA":
mnemonic_class: CJNE
form: "CJNE R2, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xBB":
mnemonic_class: CJNE
form: "CJNE R3, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xBC":
mnemonic_class: CJNE
form: "CJNE R4, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xBD":
mnemonic_class: CJNE
form: "CJNE R5, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xBE":
mnemonic_class: CJNE
form: "CJNE R6, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xBF":
mnemonic_class: CJNE
form: "CJNE R7, const addr16 , reladdr"
bytes: 4
flags[1]: C
deprecated: false
edited_8051e_form: true
"0xC0":
mnemonic_class: PUSH
form: PUSH iram addr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xC1":
mnemonic_class: AJMP
form: AJMP page6
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0xC2":
mnemonic_class: CLR
form: CLR bit addr16
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0xC3":
mnemonic_class: CLR
form: CLR C
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0xC4":
mnemonic_class: SWAP
form: SWAP A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xC5":
mnemonic_class: XCH
form: "XCH A, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xC6":
mnemonic_class: XCH
form: "XCH A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xC7":
mnemonic_class: XCH
form: "XCH A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xC8":
mnemonic_class: XCH
form: "XCH A,R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xC9":
mnemonic_class: XCH
form: "XCH A,R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xCA":
mnemonic_class: XCH
form: "XCH A,R2"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xCB":
mnemonic_class: XCH
form: "XCH A,R3"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xCC":
mnemonic_class: XCH
form: "XCH A,R4"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xCD":
mnemonic_class: XCH
form: "XCH A,R5"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xCE":
mnemonic_class: XCH
form: "XCH A,R6"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xCF":
mnemonic_class: XCH
form: "XCH A,R7"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xD0":
mnemonic_class: POP
form: POP iram addr
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xD1":
mnemonic_class: ACALL
form: ACALL page6
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0xD2":
mnemonic_class: SETB
form: SETB bit addr16
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: true
"0xD3":
mnemonic_class: SETB
form: SETB C
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: false
"0xD4":
mnemonic_class: DA
form: DA
bytes: 1
flags[1]: C
deprecated: true
edited_8051e_form: false
"0xD5":
mnemonic_class: DJNZ
form: "DJNZ iram addr , reladdr"
bytes: 3
flags[0]:
deprecated: false
edited_8051e_form: false
"0xD6":
mnemonic_class: XCHD
form: "XCHD A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xD7":
mnemonic_class: XCHD
form: "XCHD A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xD8":
mnemonic_class: DJNZ
form: "DJNZ R0, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xD9":
mnemonic_class: DJNZ
form: "DJNZ R1, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xDA":
mnemonic_class: DJNZ
form: "DJNZ R2, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xDB":
mnemonic_class: DJNZ
form: "DJNZ R3, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xDC":
mnemonic_class: DJNZ
form: "DJNZ R4, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xDD":
mnemonic_class: DJNZ
form: "DJNZ R5, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xDE":
mnemonic_class: DJNZ
form: "DJNZ R6, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xDF":
mnemonic_class: DJNZ
form: "DJNZ R7, reladdr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE0":
mnemonic_class: MOVX
form: "MOVX A,@DPTR"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE1":
mnemonic_class: AJMP
form: AJMP page7
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0xE2":
mnemonic_class: MOVX
form: "MOVX A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE3":
mnemonic_class: MOVX
form: "MOVX A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE4":
mnemonic_class: CLR
form: CLR A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE5":
mnemonic_class: MOV
form: "MOV A, iram addr"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE6":
mnemonic_class: MOV
form: "MOV A,@R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE7":
mnemonic_class: MOV
form: "MOV A,@R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE8":
mnemonic_class: MOV
form: "MOV A,R0"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xE9":
mnemonic_class: MOV
form: "MOV A,R1"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xEA":
mnemonic_class: MOV
form: "MOV A,R2"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xEB":
mnemonic_class: MOV
form: "MOV A,R3"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xEC":
mnemonic_class: MOV
form: "MOV A,R4"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xED":
mnemonic_class: MOV
form: "MOV A,R5"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xEE":
mnemonic_class: MOV
form: "MOV A,R6"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xEF":
mnemonic_class: MOV
form: "MOV A,R7"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF0":
mnemonic_class: MOVX
form: "MOVX @DPTR,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF1":
mnemonic_class: ACALL
form: ACALL page7
bytes: 2
flags[0]:
deprecated: true
edited_8051e_form: false
"0xF2":
mnemonic_class: MOVX
form: "MOVX @R0,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF3":
mnemonic_class: MOVX
form: "MOVX @R1,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF4":
mnemonic_class: CPL
form: CPL A
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF5":
mnemonic_class: MOV
form: "MOV iram addr ,A"
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF6":
mnemonic_class: MOV
form: "MOV @R0,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF7":
mnemonic_class: MOV
form: "MOV @R1,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF8":
mnemonic_class: MOV
form: "MOV R0,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xF9":
mnemonic_class: MOV
form: "MOV R1,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xFA":
mnemonic_class: MOV
form: "MOV R2,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xFB":
mnemonic_class: MOV
form: "MOV R3,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xFC":
mnemonic_class: MOV
form: "MOV R4,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xFD":
mnemonic_class: MOV
form: "MOV R5,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xFE":
mnemonic_class: MOV
form: "MOV R6,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
"0xFF":
mnemonic_class: MOV
form: "MOV R7,A"
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: false
new_replacement_instructions[5]:
- mnemonic_class: MOVX_IRAM
function: Direct IRAM to/from XDATA transfer
description: Direct transfer between IRAM and XDATA through DPTR. TDM is read-only sideband; ISA does not edit TDM.
methods[2]:
- form: "MOVX iram addr,@DPTR"
opcode: 0x01
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "MOVX @DPTR,iram addr"
opcode: 0x21
bytes: 2
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: ATOMIC_BIT
function: Atomic bit synchronization
description: Atomic test-and-modify over bit-addressable domain. Previous bit value returns in C.
methods[2]:
- form: TSET bit addr16
opcode: 0x41
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: TCLR bit addr16
opcode: 0x61
bytes: 3
flags[1]: C
deprecated: false
edited_8051e_form: true
- mnemonic_class: AUTH
function: Authorization and access-policy control
description: Hooks into SFR/security hardware. No immediate auth fields; no editable TDM operands.
methods[4]:
- form: AUTHCHK A
opcode: 0x81
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: "AUTHLD A,@DPTR"
opcode: 0xA1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: AUTHSET A
opcode: 0xC1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: AUTHCLR
opcode: 0xE1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: UPDATE
function: Safe firmware/data update protocol
description: "Safe update state-machine hooks: enter, write, verify, commit, abort."
methods[5]:
- form: UPDENTER
opcode: 0x11
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: "UPDWR @DPTR,A"
opcode: 0x31
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: UPDCRC A
opcode: 0x51
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: UPDCOMMIT
opcode: 0x71
bytes: 1
flags[1]: C
deprecated: false
edited_8051e_form: true
- form: UPDABORT
opcode: 0xD4
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- mnemonic_class: SYSTEM_MANAGEMENT
function: Deterministic system-management primitives
description: "Bus ordering, fault recovery, wait-for-event and low-power entry hooks."
methods[4]:
- form: MEMBAR
opcode: 0x91
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: FAULTCLR
opcode: 0xB1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: WFE
opcode: 0xD1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
- form: SLEEP
opcode: 0xF1
bytes: 1
flags[0]:
deprecated: false
edited_8051e_form: true
deprecated_instructions[19]:
- mnemonic_class: ACALL
form: ACALL page0
opcode: 0x11
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page1
opcode: 0x31
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page2
opcode: 0x51
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page3
opcode: 0x71
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page4
opcode: 0x91
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page5
opcode: 0xB1
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page6
opcode: 0xD1
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: ACALL
form: ACALL page7
opcode: 0xF1
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page0
opcode: 0x01
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page1
opcode: 0x21
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page2
opcode: 0x41
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page3
opcode: 0x61
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page4
opcode: 0x81
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page5
opcode: 0xA1
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page6
opcode: 0xC1
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: AJMP
form: AJMP page7
opcode: 0xE1
bytes: 2
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: DA
form: DA
opcode: 0xD4
bytes: 1
flags[1]: C
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: MOVC
form: "MOVC A,@A+PC"
opcode: 0x83
bytes: 1
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.
- mnemonic_class: MOVC
form: "MOVC A,@A+DPTR"
opcode: 0x93
bytes: 1
flags[0]:
reason: Deprecated/removed in uploaded 8051e HTML table.