Maschinenbefehle der 8051-Microcontroller-Familie
| x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8...xF | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 0x | NOP | AJMP | LJMP | RR A | INC A | INC [#] | INC @Ri | INC Ri | 0x | |
| 1x | JBC | ACALL | LCALL | RRC A | DEC A | DEC [#] | DEC @Ri | DEC Ri | 1x | |
| 2x | JB | AJMP | RET | RL A | ADD A,# | ADD A,[#] | ADD A,@Ri | ADD A,Ri | 2x | |
| 3x | JNB | ACALL | RETI | RLC A | ADDC A,# | ADDC A,[#] | ADDC A,@Ri | ADDC A,Ri | 3x | |
| 4x | JC | AJMP | ORL [#],A | ORL [#],# | ORL A,# | ORL A,[#] | ORL A,@Ri | ORL A,Ri | 4x | |
| 5x | JNC | ACALL | ANL [#],A | ANL [#],# | ANL A,# | ANL A,[#] | ANL A,@Ri | ANL A,Ri | 5x | |
| 6x | JZ | AJMP | XRL [#],A | XRL [#],# | XRL A,# | XRL A,[#] | XRL A,@Ri | XRL A,Ri | 6x | |
| 7x | JNZ | ACALL | ORL C,bit | JMP DP+A | MOV A,# | MOV [#],# | MOV @Ri,# | MOV Ri,# | 7x | |
| 8x | SJMP | AJMP | ANL C,bit | MOVC A,@A+PC | DIV AB | MOV [#],[#] | MOV [#],@Ri | MOV [#],Ri | 8x | |
| 9x | MOV DP,# | ACALL | MOV bit,C | MOVC A,@A+DPTR | SUBB A,# | SUBB A,[#] | SUBB A,@Ri | SUBB A,Ri | 9x | |
| Ax | ORL C,¬bit | AJMP | MOV C,bit | INC DP | MUL AB | (ungenutzt) | MOV @Ri,[#] | MOV Ri,[#] | Ax | |
| Bx | ANL C,¬bit | ACALL | CPL bit | CPL C | CJNE A,# | CJNE A,[#] | CJNE @Ri,# | CJNE Ri,# | Bx | |
| Cx | PUSH [#] | AJMP | CLR bit | CLR C | SWAP A | XCH A,[#] | XCH A,@Ri | XCH A,Ri | Cx | |
| Dx | POP [#] | ACALL | SETB bit | SETB C | DA A | DJNZ [#] | XCHD A,@Ri | DJNZ Ri | Dx | |
| Ex | MOVX A,@DPTR | AJMP | MOVX A,@R0 | MOVX A,@R1 | CLR A | MOV A,[#] | MOV A,@Ri | MOV A,Ri | Ex | |
| Fx | MOVX @DPTR,A | ACALL | MOVX @R0,A | MOVX @R1,A | CPL A | MOV [#],A | MOV @Ri,A | MOV Ri,A | Fx | |
| x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8...xF | ||
| Farben und Bedeutung |
|---|
| Unbedingte und bedingte Sprungbefehle |
| Bedingte Sprünge nach Dekrement |
| Arithmetik: Inkrement, Dekrement, Komplement, Shift, Adjust |
| Arithmetik: Addition, Subtraktion, Multiplikation, Division |
| Byteweise logische Operatoren |
| Bitweise logische Operatoren |
| Kopieren zwischen Registern, internem Speicher und dem Stack |
| Lesen und Schreiben des externen Speichers |
| (ungenutzt) |