Вы находитесь на странице: 1из 2

ECS 50 Operation ADC ADD ADD ADD ADD ADD ADD ADD ADD ADD AND CALL CALL

CLD CMP CMPSB CMPW DEC DEC DEC DIV DIV HLT IDIV IDIV IMUL IMUL IN IN IN IN INC INC INC IRET JA JAE JB JBE JE JG JGE JL JLE JMP JNE JZ LDS LES LODSB LODSW Operands see ADD r/m8, reg8 r/m16, reg16 reg8, r/m8 reg16, r/m16 AL, imm8 AX, imm16 r/m8, imm8 r/m16, imm16 r/m16, imm8 see ADD 32-bit displacement 16-bit displacement

8086 Instruction Set Opcodes Opcode ADD opcode + $10, and xx010xxx (ModR/M byte) for $80-$83 $00 $01 $02 $03 $04 $05 $80 xx000xxx (ModR/M byte) $81 xx000xxx (ModR/M byte) $83 xx000xxx (ModR/M byte) ADD opcode + $20, and xx100xxx (ModR/M byte) for $80, $81,$83 $9A $E8 $FC See ADD ADD opcode + $38, and xx111xxx (ModR/M byte) for $80, $81,$83 ES:[DI]==DS:[SI] $A6 ES:[DI]==DS:[SI] $A7 r/m8 $FE, xx001xxx (ModR/M byte) r/m16 $FF, xx001xxx (ModR/M byte) reg16 $48 + reg16 code r/m8 $F6, xx110xxx (ModR/M byte) r/m16 $F7, xx110xxx (ModR/M byte) $F4 r/m8 $F6, xx111xxx (ModR/M byte) r/m16 $F7, xx111xxx (ModR/M byte) r/m8 $F6, xx101xxx (ModR/M byte) r/m16 $F7, xx101xxx (ModR/M byte) AL, addr8 $E4 AX, addr8 $E5 AL, port[DX] $EC AX, port[DX] $ED r/m8 $FE, xx000xxx (ModR/M byte) r/m16 $FF, xx000xxx (ModR/M byte) reg16 $40 + reg16 code 48-bit POP $CF 8-bit relative $77 8-bit relative $73 8-bit relative $72 8-bit relative $76 8-bit relative $74 8-bit relative $7F 8-bit relative $7D 8-bit relative $7C 8-bit relative $7E 32-bit displacement $EA 8-bit relative $75 8-bit relative $74 reg16, mem32 $C4 reg16, mem32 $C5 AL = DS:[SI] $AC AX = DS:[SI] $AD

LOOP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVSB MOVSW MUL MUL NEG NEG NOT NOT OR OUT OUT OUT OUT POP POP POP PUSH PUSH PUSH REP REPNE RET RET SBB SCASB SCASW STD STOSB STOSW SUB XOR

8-bit relative r/m8, reg8 r/m16, reg16 AL, mem8 AX, mem16 mem8, AL mem16, AX reg8, imm8 reg16,imm16 r/m8, imm8 r/m16, imm16 r/m16,sreg sreg, r/m16 ES:[DI] = DS:[SI] ES:[DI] = DS:[SI] r/m8 r/m16 r/m8 r/m16 r/m8 r/m16 see ADD addr8, AL addr8, AX port[DX], AL port[DX], AX r/m16 reg16 sreg r/m16 reg16 sreg

32-bit POP 16-bit POP see ADD ES:[DI] == AL ES:[DI] == AX ES:[DI] = AL ES:[DI] = AX see ADD see ADD

$E2 $88 $89 $A0 $A1 $A2 $A3 $B0 + reg8 code $B8 + reg16 code $C6, xx000xxx(ModR/M byte) $C7, xx000xxx(ModR/M byte) $8C, xx0 sreg xxx(ModR/M byte) $8E, xx0 sreg xxx(ModR/M byte) $A4 $A5 $F6, xx100xxx (ModR/M byte) $F7, xx100xxx (ModR/M byte) $F6, xx011xxx (ModR/M byte) $F7, xx011xxx (ModR/M byte) $F6, xx010xxx (ModR/M byte) $F7, xx010xxx (ModR/M byte) ADD opcode + $08, and xx001xxx (ModR/M byte) for $80, $81,$83 $E6 $E7 $EE $EF $8F $58 + reg16 code $07 + ES = 0, CS = 8, SS = $10, DS = $18 $FF, xx110xxx (ModR/M byte) $50 + reg16 code $06 + ES = 0, CS = 8, SS = $10, DS = $18 $F3 $F2 $CA $C2 ADD opcode + $18, and xx011xxx (ModR/M byte) for $80, $81,$83 $AE $AF $FD $AA $AB ADD opcode + $28, and xx101xxx (ModR/M byte) for $80, $81,$83 ADD opcode + $30, and xx110xxx (ModR/M byte) for $80, $81,$83

addr8 = 8-bit address of I/O port reg8 = AL = 0, CL = 1, DL = 2, BL = 3, AH =4, CH = 5, DH = 6, BH = 7 reg16 = AX = 0, CX =1, DX =2, BX =3, SP = 4, BP = 5, SI = 6, DI = 7 sreg = ES = 0, CS = 1, SS = 2, DS = 3 mem8 = memory byte (direct addressing only) mem16 = memory word (direct addressing only) r/m8 = reg8 or mem8 r/m16 = reg16 or mem16 imm8 = 8 bit immediate imm16 = 16 bit immediate

Вам также может понравиться