
8051 Architectural Specification and Functional Description
| Arithmetic | 
 | 
 | Oscillator | 
| 
 | 
 | 
 | |
| Mnemonic | Description | Bytes | Periods | 
| ADD A.Rn | Add register to A | I | 12 | 
| "ADD A.data | Add direct byte to A | 2 | 12 | 
| ADDA.@Ri | Add indirect RAM to A | I | 12 | 
| ADDA./Idata | Add immediate data to A | 2 | 12 | 
| ADDC A.Rn | Add register and carry flag to A | I | 12 | 
| *ADDC A.data | Add direct byte aild carry flag | 2 | 12 | 
| 
 | toA | 
 | 
 | 
| ADDC A.@Ri | Add indirect RAM and carry | 
 | 12 | 
| 
 | flag to A | 
 | 
 | 
| ADDC A./Idata | Add immediate data and carry | 2 | 12 | 
| 
 | flag to A | 
 | 
 | 
ContrOl Trans'er(Branch)
| Mnemonic | Description | 
| AJMP addrll | Absolute Jump | 
| "LJMP addrl6 | Long Jump | 
| "SJMP rei | Short Jump | 
"JMP @A+DPTR Jump indirect relative to
| 
 | the DPTR | 
| JZ rei | Jump if A is zero | 
| JNZ rei | Jump if A is not zero | 
| JC rei | Jump if carry is set | 
| JNC rei | Jump if carry is not set | 
| "JD bit. rei | Jump relative if direct bit | 
| 
 | is set | 
Oscillator
| Byt.. | Periods | 
| 2 | 24 | 
| 3 | 24 | 
| 2 | 24 | 
| 
 | 24 | 
| 2 | 24 | 
| 2 | 24 | 
| 2 | 24 | 
| 2 | 24 | 
| 3 | 24 | 
| "SUBD A.Rn | Subtract register and carry flag | 
 | 12 | 
| 
 | from A | 
 | 
 | 
| "SUBD A.data | Subtract direct byte and carry | 2 | 12 | 
| 
 | flag from A | 
 | 
 | 
| "SUBD A.@Ri | Subtract indirect RA M and | 
 | 12 | 
| 
 | carry flag from A | 
 | 
 | 
| "SUBD A./Idata | Subtract immediate data aild | 2 | 12 | 
| 
 | carry flag from A | 
 | 
 | 
| INCA | Increment A | 
 | 12 | 
| INC Rn | Increment register | 
 | 12 | 
| "INC data | Increment direct byte | 2 | 12 | 
| INC@Ri | Increment indirect RAM | 
 | 12 | 
| DECA | Decrement A | I | 12 | 
| DEC Rn | Decrement register | I | 12 | 
| "DEC data | Decrement direct byte | 2 | 12 | 
| "DEC@Ri | Decrement indirect RAM | 
 | 12 | 
| "INC DPTR | Increment Data Pointer | 
 | 24 | 
| 'MUL AB | Multiply A times D | 
 | 48 | 
| 'DIV AD | Divide A by D | 
 | 48 | 
| DAA | Decimal add Adjust of A | 
 | 12 | 
| Other | 
 | 
 | Oscillator | 
| 
 | 
 | 
 | |
| Mnemonic | D..crlptlon | Byt.. | Periods | 
| NOP | No Operation | I | 12 | 
| "JNB bit. rei | Jump relative if direct bit | 3 | 24 | 
| 
 | is not set | 
 | 
 | 
| "J DC bit.rel | Jump relative if direct bit | 3 | 24 | 
| 
 | is ser. then clear bit | 
 | 
 | 
| "CJNE A.data.rel | Compare direct byte to A | 3 | 24 | 
| 
 | & Jump if not Eq. | 
 | 
 | 
| 
 | See Note a. | 
 | 
 | 
| 'CJNE A.lldata.rel Compare immed. to A & Jump | 3 | 24 | |
| 
 | if not Eq. See Note a. | 
 | 
 | 
| 'CJNE Rn.lldata. | Compare immed. to reg & | 3 | 24 | 
| rei | Jump if not Eq. See Note a. | 
 | 
 | 
| 'CNJE @Ri. | Compare immed. to indirect | 3 | 24 | 
| IIdata.rel | RAM & Jump if not Eq. | 
 | 
 | 
| 
 | See Note a. | 
 | 
 | 
| DJNZ Rn.rel | Decrement register & Jump | 3 | 24 | 
| 
 | if not zero | 
 | 
 | 
| 'DJNZ data. rei | Decrement direct byte & | 3 | 24 | 
| 
 | Jump if not zero | 
 | 
 | 
Note a) Set C if the first operand is less than the second operand; else clear
| Control Trans'er(Subroutine) | 
 | Oscillator | |
| 
 | 
 | 
 | |
| Mnemonic | Description | Bytes | Periods | 
| ACALL addrll | Absolute Subroutine Call | 2 | 24 | 
| LCALL addrl6 | Long Subroutine Call | 3 | 24 | 
| RET | Return from Subroutine Call | 
 | 24 | 
| RETI | Return from Interrupt Call | 
 | 24 | 
All mnemonics copyrighted@ Intel Corporation 1980.
38
