Sei sulla pagina 1di 8

MICROPROCESSOR LECTURE 8086/88 INSTRUCTION SET

Click to edit Master subtitle style 6/24/12 John R. Principio

8086 INSTRUCTION SET MATRIX


Hi Lo
0 1 2 3 4 5 6 7 8 9 A B C D E F
shift b shift w LOOPZ/ LOOPE RET (I + SP) shift b.v LOOP REP RET shift w.v JO Immed b.r/m NOP JNO Immed w.r/m XCHG CX JB/ JNAE Immed b.r/m XCHG DX JNB/ JAE Immed is.r/m XCHG BX JE/ JZ TEST b.r/m XCHG SP MOVS b JNE/ JNZ TEST w.r/m XCHG BP MOVS w JBE/ JNA XCHG b.r/m XCHG SI CMPS b JNBE/ JA XCHG w.r/m XCHG DI CMPS w b.f.r/m ADC b.f.r/m AND b.f.r/m XOR b.f.r/m INC AX PUSH AX

0 ADD 6

1
w.f.r./m ADC w.f.r./m AND w.f.r./m XOR w.f.r./m INC CX PUSH CX ADD 7 ADD b.t.r/m ADC b.t.r/m AND b.t.r/m XOR b.t.r/m INC DX PUSH DX

2
ADD w.t.r/m ADC w.t.r./m AND w.t.r./m XOR w.t.r./m INC BX PUSH BX

3
ADD b.ia ADC b.i AND b.i XOR b.i INC SP PUSH SP ADD w.ia ADC w.i AND w.i XOR w.i INC BP PUSH BP

4
PUSH ES PUSH SS SEG =ES SEG =SS INC SI PUSH SI

5
POP ES POP SS DAA AAA INC DI PUSH DI

LES AAM IN b HLT

LDS AAD IN w CMC

MOV b.i.r/m

MOV w.i.r/m XLAT

6/24/12
LOCK

LOOPNZ/ LOOPNE

John R. Principio REP


z

JCXZ

OUT b Grp1 b.r/m

OUT w Grp1 w.r/m

Hi

Lo
0 1 2 3 4 5 6 7 8 9 A B C D E F

8
OR b.f.r/m SBB b.f.r/m SUB b.f.r/m CMP b.f.r/m DEC AX POP AX

9
OR w.f.r./m SBB w.f.r./m SUB w.f.r./m CMP w.f.r./m DEC CX POP CX OR b.t.r/m SBB b.t.r/m SUB b.t.r/m CMP b.t.r/m DEC DX POP DX

A
OR w.t.r/m SBB w.t.r./m SUB w.t.r./m CMP w.t.r./m DEC BX POP BX

B
OR b.i SBB b.i SUB b.i CMP b.i DEC SP POP SP

C
OR w.i SBB w.i SUB w.i CMP w.i DEC BP POP BP

D
PUSH CS PUSH DS SEG CS SEG DS DEC SI POP SI POP DS DAS AAS DEC DI POP DI

JS MOV b.f.r/m CBW TEST b.i

JNS MOV w.f.r./m CWD TEST w.i

JP/ JPE MOV b.t.r/m CALL ld STOS b RET I(i + SP)

JNP/ JPO MOV w.t.r/m WAIT STOS w RET 1 ESC 3 si.d

JL/ JNGE MOV sr.f..r/m PUSHF LOOS b INT Type3 ESC 4 IN v.b

JNL/ JGE LEA POPF LOOS w INT (Any) ESC 5 IN v.w

JLE/ JNG MOV sr.f..r/m SAHF SCAS b

JNLE/ JG POP r/m LAHF SCAS w

INTO ESC 6 OUT v.b

IRET ESC 7 OUT v.w

6/24/12 CALL
d

ESC 0

ESC 1 JMP d

ESC 2

JMP I.d

John R. Principio JMP

Mod.r/m Immed Shift Grp1

000 ADD HOL TEST

001 OR ROR

010 ADC RCL NOT CALL id

011 SBB RCR NEG CALL lid

100 AND SHL/SAL MUL JMP id

101 SUB SHR IMUL JMP lid

110 XOR

111 CMP SAR

DIV

IDIV

Grp2

INC

DEC

PUSH

b = byte operation d = direct f = from CPU reg i = immediate ia = immed to accum id = indirect

6/24/12

is = immed, byte, sign, ext.

John R. Principio

GENERAL PURPOSE MOV POP Move byte or word Pop word off stack PUSH Push word onto stack XCHG Exchange byte or word XLAT Translate byte INPUT/OUTPUT IN OUT LEA LDS LES LAHF Input byte or word Output bye or word ADDRESS OBJECT Load effective address Load pointer using DS Load pointer using ES FLAG TRANSFER Load AH register from flags SAHF Store AH register in flags PUSHF Push flags onto stack POPF NOT AND OR TEST Pop flags off stack LOGICALS NOT byte or word AND byte or word INCLUSIVE OR byte or word TEST byte or word

THE 8086/88 INSTRUCTION SET


SHIFTS ADDITION ADD ADC INC AAA DAA SUB SBB DEC NEG CMP AAS DAS MUL IMUL AAM DIV IDIV AAD CBW CWD Add byte or word Add byte or word with carry Increment byte or word by 1 ASCII adjust for addition Decimal adjust for addition SUBTRACTION Subtract byte or word Subtract byte or word with borrow Decrement byte or word by 1 Negate byte or word Compare byte or word ASCII adjust for subtraction Decimal adjust for subtraction MULTIPLICATION Multiply byte or word unsigned Integer multiply byte or word ASCII adjust for multiply DIVISION Divide byte or word unsigned Integer divide byte or word ASCII adjust for division Convert byte to word Convert byte to doubleword Shift logical/arithmetic left byte or SHL/SAL word SHR SAR ROL ROR RCL RCR Shift logical right byte or word Shift arithmetic right byte or word ROTATES Rotate left byte or word Rotate right byte or word Rotate through carry left byte or word Rotate through carry right byte or word STRING OPERATIONS

MOVS

Move byte or word string

MOVSB/MOVSW Move byte or word string

CMPS SCAS LODS STOS REP REPE/REPZ

Compare byte or word string Scan byte or word string Load byte or word string Store byte or word string Repeat Repeat while equal/zero

XOR EXCUSIVE OR byte or word 6/24/12

Repeat while not John R. REPNE/REPNZ Principio equal/not zero

THE 8086/88 INSTRUCTION SET


CONDITIONAL TRANSFERS FLAG OPERATIONS STC CLC CMC STD CLD STI CLI HLT ESC Set carry flag Clear carry flag Complement carry flag Set direction flag Clear direction flag Set interrupt enable flag Clear interrupt enable flag Halt until interrupt or reset Escape to external processor JA/JNBE JAE/JNB JB/JNAE JBE/JNA JC JE/JZ JG/JNLE JGE/JNL JL/JNGE JLE/JNG JNC JNE/JNZ JNO JNP/JPO JNS Jump if above/not below nor equal Jump if above or equal/not below Jump if below/not above nor equal Jump if below or equal/not above Jump if carry Jump if equal/zero Jump if greater/not less nor equal Jump if greater or equal/not less Jump if less/not greater nor equal Jump if less or equal/not greater Jump if not carry Jump if not equal/notzero Jump if not overflow Jump if not parity/parity odd Jump if not sign Jump if overflow Jump if parity/parity even

EXTERNAL SYNCRONIZATION WAIT Wait for TEST pin active LOCK Lock bus during next instruction NO OPERATION

6/24/12 No operation NOP

John R.JO Principio


JP/JPE

THE 8086/88 INSTRUCTION SET


ITERATION CONTROLS LOOP LOOPE/LOOPZ LOOPNE/LOOPNZ LCXZ INT INTO IRET LOOP Loop if equal/zero Loop if not equal/not zero Jump if register CX = 0 INTERRUPTS Interrupt Interrupt if overflow Interrupt return

UNCONDITIONAL TRANSFERS CALL RET


6/24/12

Call procedure Return from procedure


John Jump R. Principio

JMP

String operations (performed on a sequence of bytes or words in memory) Non-destructive bit testing THE 8086/88 ADDRESSING MODES Instructions to aid multiprocessing systems Complete set of signed arithmetic operation The addressing modes listed below clearly show the The instruction set includes lineage from the earlier 8085 to the 8086/88. The major approximately 300 forms of difference is that the number of indirect modes has machine-level instructions. These been greatly expanded: 300 instruction types are specifically chosen to translate IMMEDIATE WHAT are the data? efficiency into assembly- or highREGISTER level code. For example, at the DIRECT INDIRECT assembly level, there are only base about 100 instruction types. We index WHERE are the will be using many of these data? instructions inn Chapter 20 to base/index write a variety of assemblybase/displacement language programs. index/displacement

base/index/displacement

6/24/12

John R. Principio

Potrebbero piacerti anche