| command | description | bytes | cycles |
| ADD A, Rn | A=A+Rn | 1 | 12 |
| ADD A, direct | A=A+@direct | 2 | 12 |
| ADD A, @Ri | A=A+@Ri | 1 | 12 |
| ADD A, #data | A=A+#data | 2 | 12 |
| ADDC A, Rn | A=A+Rn+C | 1 | 12 |
| ADDC A, direct | A=A+@direct+C | 2 | 12 |
| ADDC A, @Ri | A=A+@Ri+C | 1 | 12 |
| ADDC A, #data | A=A+#data+C | 2 | 12 |
| SUBB A, Rn | A=A-Rn-C | 1 | 12 |
| SUBB A, direct | A=A-@direct-C | 2 | 12 |
| SUBB A, @Ri | A=A-@Ri-C | 1 | 12 |
| SUBB A, #data | A=A-#data-C | 2 | 12 |
| INC A | A=A+1 | 1 | 12 |
| INC Rn | Rn=Rn+1 | 1 | 12 |
| INC direct | @direct=@direct+1 | 2 | 12 |
| INC @Ri | @Ri=@Ri+1 | 1 | 12 |
| DEC A | A=A-1 | 1 | 12 |
| DEC Rn | Rn=Rn-1 | 1 | 12 |
| DEC direct | @direct=@direct-1 | 2 | 12 |
| DEC @Ri | @Ri=@Ri-1 | 1 | 12 |
| INC DPTR | DPTR=DPTR+1 | 1 | 24 |
| MUL AB | BA=A*B | 1 | 48 |
| DIV AB | A/B=A..B | 1 | 48 |
| DA A | BCD adjustment | 1 | 12 |
| ANL A, Rn | A=A&Rn | 1 | 12 |
| ANL A, direct | A=A&@direct | 2 | 12 |
| ANL A, @Ri | A=A&@Ri | 1 | 12 |
| ANL A, #data | A=A&#data | 2 | 12 |
| ANL direct, A | @direct=@direct&A | 2 | 12 |
| ANL direct, #data | @direct=@direct&#data | 3 | 24 |
| ORL A, Rn | 1 | 12 | |
| ORL A, direct | 2 | 12 | |
| ORL A, @Rn | 1 | 12 | |
| ORL A, #data | 2 | 12 | |
| ORL direct, A | 2 | 12 | |
| ORL direct, #data | 3 | 24 | |
| XRL A, Rn | 1 | 12 | |
| XRL A, direct | 2 | 12 | |
| XRL A, @Ri | 1 | 12 | |
| XRL A, #data | 2 | 12 | |
| XRL direct, A | 2 | 12 | |
| XRL direct, #data | 3 | 24 | |
| CLR A | A=0 | 1 | 12 |
| CPL A | A=A' | 1 | 12 |
| RL A | A=A[6..0].A[7] | 1 | 12 |
| RLC A | A=A[6..0].C, C=A[7] | 1 | 12 |
| RR A | A=A[0].A[7..1] | 1 | 12 |
| RRC A | A=C.A[7..1], C=A[0] | 1 | 12 |
| SWAP A | A=A[3..0].A[7..4] | 1 | 12 |
| MOV A, Rn | A=Rn | 1 | 12 |
| MOV A, direct | A=@direct | 2 | 12 |
| MOV A, @Rn | A=@Rn | 1 | 12 |
| MOV A, #data | A=#data | 2 | 12 |
| MOV Rn, A | 1 | 12 | |
| MOV Rn, direct | 2 | 24 | |
| MOV Rn, #data | 2 | 12 | |
| MOV direct, A | 2 | 12 | |
| MOV direct, Rn | 2 | 24 | |
| MOV direct, direct | 3 | 24 | |
| MOV direct, @Rn | 2 | 24 | |
| MOV direct, #data | 3 | 24 | |
| MOV @Ri, A | 1 | 12 | |
| MOV @Ri, direct | 2 | 24 | |
| MOV @Ri, #data | 2 | 12 | |
| MOV DPTR, #data16 | 3 | 24 | |
| MOVC A,@A+DPTR | A=@(A+DPTR) | 1 | 24 |
| MOVC A, @A+PC | A=@(A+PC) | 1 | 24 |
| MOVX A, @Ri | 1 | 24 | |
| MOVX A, @DPTR | 1 | 24 | |
| MOVX @Ri, A | 1 | 24 | |
| MOVX @DPTR, A | 1 | 24 | |
| PUSH direct | 2 | 24 | |
| POP direct | 2 | 24 | |
| XCH A, Rn | T=A, A=Rn, Rn=T | 1 | 12 |
| XCH A, direct | 2 | 12 | |
| XCH A, @Ri | 1 | 12 | |
| XCHD A, @Ri | exchange low 4 bits | 1 | 12 |
| CLR C | C=0 | 1 | 12 |
| CLR bit | bit =0 | 2 | 12 |
| SETB C | C=1 | 1 | 12 |
| SETB bit | bit=1 | 2 | 12 |
| CPL C | C= ~ C | 1 | 12 |
| CPL bit | bit = ~ bit | 2 | 12 |
| ANL C, bit | C=C&bit | 2 | 24 |
| ANL C, /bit | C=C&~bit | 2 | 24 |
| ORL C, bit | C=C|bit | 2 | 24 |
| ORL C, /bit | C=C|~bit | 2 | 24 |
| MOV C, bit | C=bit | 2 | 12 |
| MOV bit, C | bit=C | 2 | 24 |
| JC rel | if C then jump | 2 | 24 |
| JNC rel | if not C then jump | 2 | 24 |
| JB bit, rel | if bit then jump | 3 | 24 |
| JNB bit, rel | if not bit then jump | 3 | 24 |
| JBC bit, rel | if bit then jump; bit=0 | 3 | 24 |
| ACALL addr11 | absolute subroutine call | 2 | 24 |
| LCALL addr16 | long subroutine call | 3 | 24 |
| RET | return from subroutine call | 1 | 24 |
| RETI | return from interrupt routine | 1 | 24 |
| AJMP addr11 | absolute jump | 2 | 24 |
| LJMP addr16 | long jump | 3 | 24 |
| SJMP rel | short jump | 2 | 24 |
| JMP @a+DPTR | indirect jump | 1 | 24 |
| JZ rel | if A=0 then jump | 2 | 24 |
| JNZ rel | if A<>0 then jump | 2 | 24 |
| CJNE A, direct, rel | if A<>@direct then jump | 3 | 24 |
| CJNE A, #data, rel | 3 | 24 | |
| CJNE Rn, #data, rel | 3 | 24 | |
| CJNE @Ri, #data, rel | 3 | 24 | |
| DJNZ Rn, rel | Rn--, if Rn<>0 then jump | 2 | 24 |
| DJNZ direct, rel | (@direct)--, if @direct <>0 then jump | 3 | 24 |
| NOP | nothing | 1 | 12 |