8051 Opcode Map =============== File: Docs.Comp.8051.OpCodeMap - Update: 0.01 Author: J.G.Harston - Date: dd-mm-yyyy 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 00 |NOP |AJMP addr11 |LJMP addr16 |RR A |INC A |INC direct |INC @R0 |INC @R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 08 |INC R0 |INC R1 |INC R2 |INC R3 |INC R4 |INC R5 |INC R6 |INC R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 10 |JBC bit,offset |ACALL addr11 |LCALL addr16 |RRC A |DEC A |DEC direct |DEC @R0 |DEC @R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 18 |DEC R0 |DEC R1 |DEC R2 |DEC R3 |DEC R4 |DEC R5 |DEC R6 |DEC R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 20 |JB bit,offset |AJMP addr11 |RET |RL A |ADD A,#imm |ADD A,direct |ADD A,@R0 |ADD A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 28 |ADD A,R0 |ADD A,R1 |ADD A,R2 |ADD A,R3 |ADD A,R4 |ADD A,R5 |ADD A,R6 |ADD A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 30 |JNB bit,offset |ACALL addr11 |RETI |RLC A |ADDC A,#imm |ADDC A,direct |ADDC A,@R0 |ADDC A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 38 |ADDC A,R0 |ADDC A,R1 |ADDC A,R2 |ADDC A,R3 |ADDC A,R4 |ADDC A,R5 |ADDC A,R6 |ADDC A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 40 |JC offset |AJMP addr11 |ORL direct,A |ORL direct,#imm|ORL A,#imm |ORL A,direct |ORL A,@R0 |ORL A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 48 |ORL A,R0 |ORL A,R1 |ORL A,R2 |ORL A,R3 |ORL A,R4 |ORL A,R5 |ORL A,R6 |ORL A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 50 |JNC offset |ACALL addr11 |ANL direct,A |ANL direct,#imm|ANL A,#imm |ANL A,direct |ANL A,@R0 |ANL A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 58 |ANL A,R0 |ANL A,R1 |ANL A,R2 |ANL A,R3 |ANL A,R4 |ANL A,R5 |ANL A,R6 |ANL A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 60 |JZ offset |AJMP addr11 |XRL direct,A |XRL direct,#imm|XRL A,#imm |XRL A,direct |XRL A,@R0 |XRL A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 68 |XRL A,R0 |XRL A,R1 |XRL A,R2 |XRL A,R3 |XRL A,R4 |XRL A,R5 |XRL A,R6 |XRL A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 70 |JNZ offset |ACALL addr11 |ORL C,bit |JMP @A+DPTR |MOV A,#imm |MOV direct,#imm |MOV @R0,#imm |MOV @R1,#imm | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 78 |MOV R0,#imm |MOV R1,#imm |MOV R2,#imm |MOV R3,#imm |MOV R4,#imm |MOV R5,#imm |MOV R6,#imm |MOV R7,#imm | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 80 |SJMP offset |AJMP addr11 |ANL C,bit |MOVC A,@A+PC |DIV AB |MOV direct,direct|MOV direct,@R0 |MOV direct,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 88 |MOV direct,R0 |MOV direct,R1 |MOV direct,R2 |MOV direct,R3 |MOV direct,R4 |MOV direct,R5 |MOV direct,R6 |MOV direct,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 90 |MOV DPTR,#imm |ACALL addr11 |MOV bit,C |MOVC A,@A+DPTR |SUBB A,#imm |SUBB A,direct |SUBB A,@R0 |SUBB A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ 98 |SUBB A,R0 |SUBB A,R1 |SUBB A,R2 |SUBB A,R3 |SUBB A,R4 |SUBB A,R5 |SUBB A,R6 |SUBB A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ A0 |ORL C,/bit |AJMP addr11 |MOV C,bit |INC DPTR |MUL AB |undefined |MOV @R0,direct |MOV @R1,direct | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ A8 |MOV R0,direct |MOV R1,direct |MOV R2,direct |MOV R3,direct |MOV R4,direct |MOV R5,direct |MOV R6,direct |MOV R7,direct | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ B0 |ANL C,/bit |ACALL addr11 |CPL bit |CPL C |CJNE A,#imm,off |CJNE A,direct,off|CJNE @R0,#imm,off|CJNE @R1,#imm,off| +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ B8 |CJNE R0,#imm,off|CJNE R1,#imm,off|CJNE R2,#imm,off|CJNE R3,#imm,off|CJNE R4,#imm,off|CJNE R5,#imm,off |CJNE R6,#imm,off |CJNE R7,#imm,off | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ C0 |PUSH direct |AJMP addr11 |CLR bit |CLR C |SWAP A |XCH A,direct |XCH A,@R0 |XCH A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ C8 |XCH A,R0 |XCH A,R1 |XCH A,R2 |XCH A,R3 |XCH A,R4 |XCH A,R5 |XCH A,R6 |XCH A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ D0 |POP direct |ACALL addr11 |SETB bit |SETB C |DA A |DJNZ direct,off |XCHD A,@R0 |XCHD A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ D8 |DJNZ R0,offset |DJNZ R1,offset |DJNZ R2,offset |DJNZ R3,offset |DJNZ R4,offset |DJNZ R5,offset |DJNZ R6,offset |DJNZ R7,offset | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ E0 |MOVX A,@DPTR |AJMP addr11 |MOVX A,@R0 |MOVX A,@R1 |CLR A |MOV A,direct |MOV A,@R0 |MOV A,@R1 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ E8 |MOV A,R0 |MOV A,R1 |MOV A,R2 |MOV A,R3 |MOV A,R4 |MOV A,R5 |MOV A,R6 |MOV A,R7 | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ F0 |MOVX @DPTR,A |ACALL addr11 |MOVX @R0,A |MOVX @R1,A |CPL A |MOV direct,A |MOV @R0,A |MOV @R1,A | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ F8 |MOV R0,A |MOV R1,A |MOV R2,A |MOV R3,A |MOV R4,A |MOV R5,A |MOV R6,A |MOV R7,A | +----------------+----------------+----------------+----------------+----------------+-----------------+-----------------+-----------------+ Memory layout ============= Direct Program External Memory Memory Memory Accessed with Accessed with Accessed with direct PC XMOV and DPTR 0000 +-------------------+ +------------+ +------------+ 0000 | Internal | | RESET | | | | RAM | | and | | | 0080 +----------+--------+ | Interupt | | | 0080 | Special | 8052 | | Vectors | | | | functions| RAM | | | | | 0100 +----------+--------+ +------------+ | | 0100 ^ | | | | MOV @Ri and SP| | | | | always access | | | | 1000 +------------+ | | 1000 | | | | | | | | | | | | E000 +------------+ | | |SDK Monitor | | | E000 | Entries | | | E080 +------------+ | | E080 | | | | | | | | | | | | | | | | | | | | | | | | FFFF +------------+ +------------+ FFFF 8052 has