CDP1805
Information
This page describes the additional instructions of the CDP1805 which is the successor of the CDP1804.
Definitions
| xx | 8 bit value |
| xxxx | 16 bit value |
| RN | Register number N (N = 0 to F), RN can also be represented as N in all commands |
| RX | Stack or data pointer register |
| RP | Program counter register |
| RN.0, RX.0 or RP.0 | Lower order byte or RN, RX or RP |
| RN.1, RX.1 or RP.1 | Higher order byte or RN, RX or RP |
| M(RN)->D; RN+1->RN | This notation means: The memory byte pointed to by RN is loaded into D, and RN is incremented by 1. |
Syntax
| Instruction | Mnemonic | Opcode | Definition |
|---|---|---|---|
| REGISTER OPERATIONS | |||
| DECREMENT REG N AND LONG BRANCH IF NOT EQUAL 0 | DBNZ R1, xxxx | 682N | RN-1->RN; IF RN NOT 0, M(RP)->RP.1, M(RP+1)->RP.0, ELSE RP+2->RP |
| ARITHMETIC OPERATIONS | |||
| DECIMAL ADD | DADD | 68F4 | M(RX)+D->DF, D; DECIMAL ADJUST->DF, D |
| DECIMAL ADD IMMEDIATE | DADI xx | 68FC | M(RP)+D->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
| DECIMAL ADD WITH CARRY | DADC | 6874 | M(RX)+D+DF->DF, D; DECIMAL ADJUST->DF, D |
| DECIMAL ADD WITH CARRY IMMEDIATE | DACI xx | 687C | M(RP)+D+DF->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
| DECIMAL SUBTRACT MEMORY | DSM | 68F7 | D-M(RX)->DF, D; DECIMAL ADJUST->DF, D |
| DECIMAL SUBTRACT MEMORY IMMEDIATE | DSMI xx | 68FF | D-M(RP)->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
| DECIMAL SUBTRACT MEMORY WITH BORROW | DSMB | 6877 | D-M(RX)-(NOT DF)->DF, D; DECIMAL ADJUST->DF, D |
| DECIMAL SUBTRACT WITH BORROW IMMEDIATE | DSBI xx | 687F | D-M(RP)-(NOT DF)->DF, D; RP+1->RP; DECIMAL ADJUST->DF, D |
| INTERRUPT CONTROL | |||
| SAVE T, D, DF | DSAV | 6876 | RX-1->RX; T->M(RX); RX-1->RX; D->M(RX); RX-1->RX; SHIFT D RIGHT WITH CARRY; D->M(RX) |