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.