8051 Instruction Set

Instructions by opcode

0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
0x00 NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC
0x10 JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC
0x20 JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD
0x30 JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC
0x40 JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL
0x50 JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL
0x60 JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL
0x70 JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
0x80 SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
0x90 MOV ACALL MOV MOVC SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB
0xa0 ORL AJMP MOV INC MUL ? MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
0xb0 ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE
0xc0 PUSH AJMP CLR CLR SWAP XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH
0xd0 POP ACALL SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ
0xe0 MOVX AJMP MOVX MOVX CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
0xf0 MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

 

Alphabetical List of Instructions

    • ACALL – Absolute Call
    • ADD, ADDC – Add Accumulator (With Carry)
    • AJMP – Absolute Jump
    • ANL – Bitwise AND
    • CJNE – Compare and Jump if Not Equal
    • CLR – Clear Register
    • CPL – Complement Register
    • DA – Decimal Adjust
    • DEC – Decrement Register
    • DIV – Divide Accumulator by B
    • DJNZ – Decrement Register and Jump if Not Zero
    • INC – Increment Register
    • JB – Jump if Bit Set
    • JBC – Jump if Bit Set and Clear Bit
    • JC – Jump if Carry Set
    • JMP – Jump to Address
  • JNB – Jump if Bit Not Set
  • JNC – Jump if Carry Not Set
  • JNZ – Jump if Accumulator Not Zero
  • JZ – Jump if Accumulator Zero
  • LCALL – Long Call
  • LJMP – Long Jump
  • MOV – Move Memory
  • MOVC – Move Code Memory
  • MOVX – Move Extended Memory
  • MUL – Multiply Accumulator by B
  • NOP – No Operation
  • ORL – Bitwise OR
  • POP – Pop Value From Stack
  • PUSH – Push Value Onto Stack
  • RET – Return From Subroutine
  • RETI – Return From Interrupt
  • RL – Rotate Accumulator Left
  • RLC – Rotate Accumulator Left Through Carry
  • RR – Rotate Accumulator Right
  • RRC – Rotate Accumulator Right Through Carry
  • SETB – Set Bit
  • SJMP – Short Jump
  • SUBB – Subtract From Accumulator With Borrow
  • SWAP – Swap Accumulator Nibbles
  • XCH – Exchange Bytes
  • XCHD – Exchange Digits
  • XRL – Bitwise Exclusive OR
  • Undefined – Undefined Instruction

Related posts

A look at the EX-F34x-Q48 Development Board

A generic C8051F340 Development Board