Mnemonics Opcode
Mnemonic | Op | SZAPC | ~s | Description | Notes |
---|---|---|---|---|---|
ACI n | CE | ***** | 7 | Add with Carry Immediate | A=A+n+CY |
ADC r | 8F | ***** | 4 | Add with Carry | A=A+r+CY(21X) |
ADC M | 8E | ***** | 7 | Add with Carry to Memory | A=A+[HL]+CY |
ADD r | 87 | ***** | 4 | Add | A=A+r (20X) |
ADD M | 86 | ***** | 7 | Add to Memory | A=A+[HL] |
ADI n | C6 | ***** | 7 | Add Immediate | A=A+n |
ANA r | A7 | ****0 | 4 | AND Accumulator | A=A&r (24X) |
ANA M | A6 | ****0 | 7 | AND Accumulator and Memory | A=A&[HL] |
ANI n | E6 | **0*0 | 7 | AND Immediate | A=A&n |
CALL a | CD | ----- | 18 | Call unconditional | -[SP]=PC,PC=a |
CC a | DC | ----- | 9 | Call on Carry | If CY=1(18~s) |
CM a | FC | ----- | 9 | Call on Minus | If S=1 (18~s) |
CMA | 2F | ----- | 4 | Complement Accumulator | A=~A |
CMC | 3F | ----* | 4 | Complement Carry | CY=~CY |
CMP r | BF | ***** | 4 | Compare | A-r (27X) |
CMP M | BF | ***** | 7 | Compare with Memory | A-[HL] |
CNC a | D4 | ----- | 9 | Call on No Carry | If CY=0(18~s) |
CNZ a | C4 | ----- | 9 | Call on No Zero | If Z=0 (18~s) |
CP a | F4 | ----- | 9 | Call on Plus | If S=0 (18~s) |
CPE a | EC | ----- | 9 | Call on Parity Even | If P=1 (18~s) |
CPI n | FE | ***** | 7 | Compare Immediate | A-n |
CPO a | E4 | ----- | 9 | Call on Parity Odd | If P=0 (18~s) |
CZ a | CC | ----- | 9 | Call on Zero | If Z=1 (18~s) |
DAA | 27 | ***** | 4 | Decimal Adjust Accumulator | A=BCD format |
DAD B | 09 | ----* | 10 | Double Add BC to HL | HL=HL+BC |
DAD D | 19 | ----* | 10 | Double Add DE to HL | HL=HL+DE |
DAD H | 29 | ----* | 10 | Double Add HL to HL | HL=HL+HL |
DAD SP | 39 | ----* | 10 | Double Add SP to HL | HL=HL+SP |
DCR r | 3D | ****- | 4 | Decrement | r=r-1 (0X5) |
DCR M | 35 | ****- | 10 | Decrement Memory | [HL]=[HL]-1 |
DCX B | 0B | ----- | 6 | Decrement BC | BC=BC-1 |
DCX D | 1B | ----- | 6 | Decrement DE | DE=DE-1 |
DCX H | 2B | ----- | 6 | Decrement HL | HL=HL-1 |
DCX SP | 3B | ----- | 6 | Decrement Stack Pointer | SP=SP-1 |
DI | F3 | ----- | 4 | Disable Interrupts | |
EI | FB | ----- | 4 | Enable Interrupts | |
HLT | 76 | ----- | 5 | Halt | |
IN p | DB | ----- | 10 | Input | A=[p] |
INR r | 3C | ****- | 4 | Increment | r=r+1 (0X4) |
INR M | 3C | ****- | 10 | Increment Memory | [HL]=[HL]+1 |
INX B | 03 | ----- | 6 | Increment BC | BC=BC+1 |
INX D | 13 | ----- | 6 | Increment DE | DE=DE+1 |
INX H | 23 | ----- | 6 | Increment HL | HL=HL+1 |
INX SP | 33 | ----- | 6 | Increment Stack Pointer | SP=SP+1 |
JMP a | C3 | ----- | 7 | Jump unconditional | PC=a |
JC a | DA | ----- | 7 | Jump on Carry | If CY=1(10~s) |
JM a | FA | ----- | 7 | Jump on Minus | If S=1 (10~s) |
JNC a | D2 | ----- | 7 | Jump on No Carry | If CY=0(10~s) |
JNZ a | C2 | ----- | 7 | Jump on No Zero | If Z=0 (10~s) |
JP a | F2 | ----- | 7 | Jump on Plus | If S=0 (10~s) |
JPE a | EA | ----- | 7 | Jump on Parity Even | If P=1 (10~s) |
JPO a | E2 | ----- | 7 | Jump on Parity Odd | If P=0 (10~s) |
JZ a | CA | ----- | 7 | Jump on Zero | If Z=1 (10~s) |
LDA a | 3A | ----- | 13 | Load Accumulator direct | A=[a] |
LDAX B | 0A | ----- | 7 | Load Accumulator indirect | A=[BC] |
LDAX D | 1A | ----- | 7 | Load Accumulator indirect | A=[DE] |
LHLD a | 2A | ----- | 16 | Load HL Direct | HL=[a] |
LXI B,nn | 01 | ----- | 10 | Load Immediate BC | BC=nn |
LXI D,nn | 11 | ----- | 10 | Load Immediate DE | DE=nn |
LXI H,nn | 21 | ----- | 10 | Load Immediate HL | HL=nn |
LXI SP,nn | 31 | ----- | 10 | Load Immediate Stack Ptr | SP=nn |
MOV r1,r2 | 7F | ----- | 4 | Move register to register | r1=r2 (1XX) |
MOV M,r | 77 | ----- | 7 | Move register to Memory | [HL]=r (16X) |
MOV r,M | 7E | ----- | 7 | Move Memory to register | r=[HL] (1X6) |
MVI r,n | 3E | ----- | 7 | Move Immediate | r=n (0X6) |
MVI M,n | 36 | ----- | 10 | Move Immediate to Memory | [HL]=n |
NOP | 00 | ----- | 4 | No Operation | |
ORA r | B7 | **0*0 | 4 | Inclusive OR Accumulator | A=Avr (26X) |
ORA M | B6 | **0*0 | 7 | Inclusive OR Accumulator | A=Av[HL] |
ORI n | F6 | **0*0 | 7 | Inclusive OR Immediate | A=Avn |
OUT p | D3 | ----- | 10 | Output | [p]=A |
PCHL | E9 | ----- | 6 | Jump HL indirect | PC=[HL] |
POP B | C1 | ----- | 10 | Pop BC | BC=[SP]+ |
POP D | D1 | ----- | 10 | Pop DE | DE=[SP]+ |
POP H | E1 | ----- | 10 | Pop HL | HL=[SP]+ |
POP PSW | F1 | ----- | 10 | Pop Processor Status Word | {PSW,A}=[SP]+ |
Mnemonic | Op | SZAPC | ~s | Description | Notes |
---|---|---|---|---|---|
PUSH B | C5 | ----- | 12 | Push BC | -[SP]=BC |
PUSH D | D5 | ----- | 12 | Push DE | -[SP]=DE |
PUSH H | E5 | ----- | 12 | Push HL | -[SP]=HL |
PUSH PSW | F5 | ----- | 12 | Push Processor Status Word | -[SP]={PSW,A} |
RAL | 17 | ----* | 4 | Rotate Accumulator Left | A={CY,A}<- |
RAR | 1F | ----* | 4 | Rotate Accumulator Righ | A=->{CY,A} |
RET | C9 | ----- | 10 | Return | PC=[SP]+ |
RC | D8 | ----- | 6 | Return on Carry | If CY=1(12~s) |
RIM | 20 | ----- | 4 | Read Interrupt Mask | A=mask |
RM | F8 | ----- | 6 | Return on Minus | If S=1 (12~s) |
RNC | D0 | ----- | 6 | Return on No Carry | If CY=0(12~s) |
RNZ | C0 | ----- | 6 | Return on No Zero | If Z=0 (12~s) |
RP | F0 | ----- | 6 | Return on Plus | If S=0 (12~s) |
RPE | E8 | ----- | 6 | Return on Parity Even | If P=1 (12~s) |
RPO | E0 | ----- | 6 | Return on Parity Odd | If P=0 (12~s) |
RZ | C8 | ----- | 6 | Return on Zero | If Z=1 (12~s) |
RLC | 07 | ----* | 4 | Rotate Left Circular | A=A<- |
RRC | 0F | ----* | 4 | Rotate Right Circular | A=->A |
RST z | C7 | ----- | 12 | Restart (3X7) | -[SP]=PC,PC=z |
SBB r | 9F | ***** | 4 | Subtract with Borrow | A=A-r-CY |
SBB M | 9E | ***** | 7 | Subtract with Borrow | A=A-[HL]-CY |
SBI n | DE | ***** | 7 | Subtract with Borrow Immed | A=A-n-CY |
SHLD a | 22 | ----- | 16 | Store HL Direct | [a]=HL |
SIM | 30 | ----- | 4 | Set Interrupt Mask | mask=A |
SPHL | F9 | ----- | 6 | Move HL to SP | SP=HL |
STA a | 32 | ----- | 13 | Store Accumulator | [a]=A |
STAX B | 02 | ----- | 7 | Store Accumulator indirect | [BC]=A |
STAX D | 12 | ----- | 7 | Store Accumulator indirect | [DE]=A |
STC | 37 | ----1 | 4 | Set Carry | CY=1 |
SUB r | 97 | ***** | 4 | Subtract | A=A-r (22X) |
SUB M | 96 | ***** | 7 | Subtract Memory | A=A-[HL] |
SUI n | D6 | ***** | 7 | Subtract Immediate | A=A-n |
XCHG | EB | ----- | 4 | Exchange HL with DE | HL<->DE |
XRA r | AF | **0*0 | 4 | Exclusive OR Accumulator | A=Axr (25X) |
XRA M | AE | **0*0 | 7 | Exclusive OR Accumulator | A=Ax[HL] |
XRI n | EE | **0*0 | 7 | Exclusive OR Immediate | A=Axn |
XTHL | E3 | ----- | 16 | Exchange stack Top with HL | [SP]<->HL |
PSW | -*01 | Flag unaffected/affected/reset/set | |
S | S | Sign (Bit 7) | |
Z | Z | Zero (Bit 6) | |
AC | A | Auxilary Carry (Bit 4) | |
P | P | Parity (Bit 2) | |
CY | C | Carry (Bit 0) |
a p | Direct addressing |
M z | Register indirect addressing |
n nn | Immediate addressing |
r | Register addressing |
--------------------- | ---------------------------------------- |
DB n(,n) | Define Byte(s) |
DB 'string' | Define Byte ASCII character string |
DS nn | Define Storage Block |
DW nn(,nn) | Define Word(s) |
--------------------- | ---------------------------------------- |
A B C D E H L | Registers (8-bit) |
BC DE HL | Register pairs (16-bit) |
PC | Program Counter register (16-bit) |
PSW | Processor Status Word (8-bit) |
SP | Stack Pointer register (16-bit) |
--------------------- | ---------------------------------------- |
a nn | 16-bit address/data (0 to 65535) |
n p | 8-bit data/port (0 to 255) |
r | Register (X=B,C,D,E,H,L,M,A) |
z | Vector (X=0H,8H,10H,18H,20H,28H,30H,38H) |
--------------------- | ---------------------------------------- |
+ - | Arithmetic addition/subtraction |
& ~ | Logical AND/NOT |
v x | Logical inclusive/exclusive OR |
<- -> | Rotate left/right |
<-> | Exchange |
[ ] | Indirect addressing |
[ ]+ -[ ] | Indirect address auto-inc/decrement |
{ } | Combination operands |
( X ) | Octal op code where X is a 3-bit code |
If ( ~s) | Number of cycles if condition true |
User Comments
No Posts found !Login to Post a Comment.