8088 opcodes

 info@homebrew8088.com 
                    Home    8088 Programming    80x86 Assembly    8088 opcodes    Arduino    Troubleshoot 

    
PUSH SEG REG 
 Number of Bytes1st Opcode2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x06      
 PUSH ES
10x0E    PUSH CS
10x16    PUSH SS
10x1E    PUSH DS
 
POP SEG REG 
 Number of Bytes1st Opcode2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x07      
 POP ES
10x0F    POP CS ?
10x17    POP SS
10x1F    POP DS
 
SEGMENT OVER RIDE
 Number of Bytes1st Opcode2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x26     
 ES:
10x2E    CS:
10x36    SS:
10x3E    DS:
 
INC REG16
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x40   
 INC AX
1 0x41    INC CX
10x42    INC DX
10x43    INC BX
10x44    INC SP
10x45    INC BP
10x46    INC SI
10x47    INC DI
    
DEC REG16
 Number of Bytes1st Opcode2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x48    DEC AX
10x49    DEC CX
10x4A    DEC DX
10x4B    DEC BX
10x4C    DEC SP
10x4D



DEC BP
10x4E    DEC SI
10x4F    DEC DI

PUSH REG16
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x50
   PUSH AX
10x51 
   PUSH CX
10x52    PUSH DX
10x53
   PUSH BX
10x54



PUSH SP
10x55



PUSH BP
10x56
   PUSH SI
10x57
   PUSH DI

POP REG16
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10x58
   POP AX
10x59 
   POP CX
10x5A    POP DX
10x5B
   POP BX
10x5C



POP SP
10x5D



POP BP
10x5E
   POP SI
10x5F
   POP DI

JMP CONDITIONAL
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x70BYTE   JO
20x71 BYTE   JNO
20x72BYTE    JB
20x73BYTE   JNB
20x74BYTE


JE/JZ
20x75BYTE


JNE/JNZ
20x76BYTE   JBE
20x77BYTE   JA
20x78BYTE   JS
20x79BYTE   JNS
20x7ABYTE   JPE
20x7BBYTE   JPO
20x7CBYTE   JL
20x7DBYTE   JGE
20x7EBYTE   JLE
20x7FBYTE   JG

ADD BYTE PTR [****], BYTE
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30x800x00BYTE 

ADD BYTE PTR [BX+SI], BYTE
30x800x01 BYTE
 ADD BYTE PTR [BX+DI], BYTE
30x800x02BYTE  ADD BYTE PTR [BP+SI], BYTE
30x800x03BYTE  ADD BYTE PTR [BP+DI], BYTE
30x800x04BYTE  ADD BYTE PTR [SI], BYTE
30x800x05BYTE  ADD BYTE PTR [DI], BYTE
50x800x06BYTEBYTEBYTEADD BYTE PTR [WORD], BYTE
30x800x07BYTE  ADD BYTE PTR [BX], BYTE

OR BYTE PTR [****],
 BYTE
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30x800x08BYTE 

OR BYTE PTR [BX+SI], BYTE
30x800x09 BYTE
 OR BYTE PTR [BX+DI], BYTE
30x800x0ABYTE  OR BYTE PTR [BP+SI], BYTE
30x800x0BBYTE  OR BYTE PTR [BP+DI], BYTE
30x800x0CBYTE  OR BYTE PTR [SI], BYTE
30x800x0DBYTE  OR BYTE PTR [DI], BYTE
50x800x0EBYTEBYTEBYTEOR BYTE PTR [WORD], BYTE
30x800x0FBYTE  OR BYTE PTR [BX], BYTE
 
ADC BYTE PTR [****], BYTE
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30x800x10BYTE 

ADC BYTE PTR [BX+SI], BYTE
30x800x11 BYTE
 ADC BYTE PTR [BX+DI], BYTE
30x800x12BYTE  ADC BYTE PTR [BP+SI], BYTE
30x800x13BYTE  ADC BYTE PTR [BP+DI], BYTE
30x800x14BYTE  ADC BYTE PTR [SI], BYTE
30x800x15BYTE  ADC BYTE PTR [DI], BYTE
50x800x16BYTEBYTEBYTEADC BYTE PTR [WORD], BYTE
30x800x17BYTE  ADC BYTE PTR [BX], BYTE

SBB BYTE PTR [****],
 BYTE
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30x800x18BYTE 

SBB BYTE PTR [BX+SI], BYTE
30x800x19 BYTE
 SBB BYTE PTR [BX+DI], BYTE
30x800x1ABYTE  SBB BYTE PTR [BP+SI], BYTE
30x800x1BBYTE  SBB BYTE PTR [BP+DI], BYTE
30x800x1CBYTE  SBB BYTE PTR [SI], BYTE
30x800x1DBYTE  SBB BYTE PTR [DI], BYTE
50x800x1EBYTEBYTEBYTESBB BYTE PTR [WORD], BYTE
30x800x1FBYTE  SBB BYTE PTR [BX], BYTE
 
XOR REG8, BYTE
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30x800xF0BYTE 

XOR AL, BYTE
30x800xF1 BYTE
 XOR CL, BYTE
30x800xF2BYTE  XOR DL, BYTE
30x800xF3BYTE  XOR BL, BYTE
30x800xF4BYTE  XOR AH, BYTE
30x800xF5BYTE  XOR CH, BYTE
30x800xF6BYTE
 XOR DH, BYTE
30x800xF7BYTE  XOR BH, BYTE
  
CMP REG8, BYTE
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30x800xF8BYTE 

CMP AL, BYTE
30x800xF9 BYTE
 CMP CL, BYTE
30x800xFABYTE  CMP DL, BYTE
30x800xFBBYTE  CMP BL, BYTE
30x800xFCBYTE  CMP AH, BYTE
30x800xFDBYTE  CMP CH, BYTE
30x800xFEBYTE
 CMP DH, BYTE
30x800xFFBYTE  CMP BH, BYTE

MOV REG8, AL
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x88 0xC0

 MOV AL, AL
20x880xC1 
 MOV CL, AL
20x880xC2   MOV DL, AL
20x880xC3   MOV BL, AL
20x880xC4   MOV AH, AL
20x880xC5   MOV CH, AL
20x880xC6   MOV DH, AL
20x880xC7   MOV BH, AL
 
MOV REG8, CL
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x88 0xC8

 MOV AL, CL
20x880xC9 
 MOV CL, CL
20x880xCA   MOV DL, CL
20x880xCB   MOV BL, CL
20x880xCC   MOV AH, CL
20x880xCD   MOV CH, CL
20x880xCE   MOV DH, CL
20x880xCF   MOV BH, CL
 
MOV REG8, DL
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x88 0xD0

 MOV AL, DL
20x880xD1 
 MOV CL, DL
20x880xD2   MOV DL, DL
20x880xD3   MOV BL, DL
20x880xD4   MOV AH, DL
20x880xD5   MOV CH, DL
20x880xD6   MOV DH, DL
20x880xD7   MOV BH, DL
 
MOV REG8, BL
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x88 0xD8

 MOV AL, BL
20x880xD9 
 MOV CL, BL
20x880xDA   MOV DL, BL
20x880xDB   MOV BL, BL
20x880xDC   MOV AH, BL
20x880xDD   MOV CH, BL
20x880xDE   MOV DH, BL
20x880xDF   MOV BH, BL
 
MOV REG8, AH
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x880xE0


MOV AL, AH
20x880xE1   MOV CL, AH
20x880xE2   MOV DL, AH
20x880xE3   MOV BL, AH
20x880xE4   MOV AH, AH
20x880xE5   MOV CH, AH
20x880xE6   MOV DH, AH
20x880xE7   MOV BH, AH
 
MOV REG8, CH
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x880xE8


MOV AL, CH
20x880xE9   MOV CL, CH
20x880xEA   MOV DL, CH
20x880xEB   MOV BL, CH
20x880xEC   MOV AH, CH
20x880xED   MOV CH, CH
20x880xEE   MOV DH, CH
20x880xEF   MOV BH, CH
  
MOV REG8, DH
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x880xF0


MOV AL, DH
20x880xF1   MOV CL, DH
20x880xF2   MOV DL, DH
20x880xF3   MOV BL, DH
20x880xF4   MOV AH, DH
20x880xF5   MOV CH, DH
20x880xF6   MOV DH, DH
20x880xF7   MOV BH, DH
 
MOV REG8, BH
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x880xF8


MOV AL, BH
20x880xF9   MOV CL, BH
20x880xFA   MOV DL, BH
20x880xFB   MOV BL, BH
20x880xFC   MOV AH, BH
20x880xFD   MOV CH, BH
20x880xFE   MOV DH, BH
20x880xFF   MOV BH, BH
 
MOV REG16, REG16
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x89 0xC0 

 MOV AX, AX  
20x890xC1  
 MOV CX, AX
20x89 0xC2  
 MOV DX, AX  
20x890xC3  
 MOV BX, AX 
20x89     0xD8    MOV AX, BX
0x89 0xD9    MOV CX, BX 
20x89 0xDA    MOV DX, BX 
20x89 0xDB    MOV BX, BX 

MOV SEG REG, REG16
 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20x8E 0xC0    MOV ES, AX 
20x8E0xC1   MOV ES, CX
20x8E0xC2   MOV ES, DX
0x8E 0xC3    MOV ES, BX 
20x8E0xC4   MOV ES, SP
20x8E0xC5   MOV ES, BP
20x8E0xC6   MOV ES, SI
20x8E0xC7   MOV ES, DI
20x8E 0xC8    MOV CS, AX 
20x8E 0xC9    MOV CS, CX 
20x8E 0xCA   MOV CS, DX 
0x8E 0xCB    MOV CS, BX 
20x8E0xCC   MOV CS, SP
20x8E0xCD   MOV CS, BP
20x8E0xCE   MOV CS, SI
20x8E0xCF   MOV CS, DI
20x8E0xD0 
 MOV SS, AX 
20x8E0xD1   MOV SS, CX
20x8E0xD2   MOV SS, DX
0x8E 0xD3    MOV SS, BX 
20x8E0xD4   MOV SS, SP
20x8E0xD5   MOV SS, BP
20x8E0xD6   MOV SS, SI
20x8E0xD7   MOV SS, DI
0x8E0xD8  
 MOV DS, AX 
20x8E0xD9   MOV DS, CX
20x8E0xDA   MOV DS, DX
20x8E 0xDB    MOV DS, BX 
20x8E0xDC   MOV DS, SP
20x8E0xDD   MOV DS, BP
20x8E0xDE   MOV DS, SI
20x8E0xDF   MOV DS, DI

MOV ACCUMULATOR
Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30xA0 BYTEBYTE  MOV AL, [WORD]
30xA1BYTEBYTE
 MOV AX, [WORD]
30xA2BYTEBYTE
 MOV [WORD], AL
30xA3BYTEBYTE
 MOV [WORD], AX
 
MOV REG8, BYTE
Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
20xB0 BYTE   MOV AL, BYTE
20xB1BYTE 
 MOV CL, BYTE
20xB2BYTE 
 MOV DL, BYTE 
20xB3BYTE 
 MOV BL, BYTE
20xB4BYTE 
 MOV AH, BYTE 
20xB5 BYTE    MOV CH, BYTE 
20xB6 BYTE     MOV DH, BYTE 
0xB7 BYTE     MOV BH, BYTE

MOV REG16, WORD

 Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
30xB8 BYTEBYTE 
 MOV AX, WORD
30xB9BYTE BYTE
 MOV CX, WORD
30xBA BYTEBYTE
 MOV DX, WORD
30xBBBYTEBYTE
 MOV BX, WORD
30xBC   BYTE BYTE 
 MOV SP, WORD 
30xBDBYTE BYTE 
 MOV BP, WORD 
30xBEBYTE BYTE 
 MOV SI, WORD 
30xBF BYTE BYTE 
 MOV DI, WORD 

MISU
Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
10xC3    RET
20xCD BYTE  
 INT BYTE (Interrupt Number) 
10xCF   
 IRET 
20xE2 BYTE  
 LOOP BYTE 
20xE6 BYTE    OUT BYTE (Port Number), AL
50xEA BYTE BYTE BYTE BYTE JMP FAR WORD:WORD 
20xEB BYTE    JMP BYTE 
0xF4     HLT 
 
INC REG8
Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
0xFE0xC0    INC AL 
20xFE0xC1   INC CL
20xFE0xC2   INC DL
20xFE0xC3   INC BL
20xFE0xC4   INC AH
20xFE0xC5   INC CH
20xFE0xC6   INC DH
20xFE0xC7   INC BH

DEC REG8
Number of Bytes1st Opcode 2nd Opcode3rd Opcode4th Opcode 5th Opcode  Instruction
0xFE0xC8    DEC AL 
20xFE0xC9   DEC CL
20xFE0xCA   DEC DL
20xFE0xCB   DEC BL
20xFE0xCC   DEC AH
20xFE0xCD   DEC CH
20xFE0xCE   DEC DH
20xFE0xCF   DEC BH