Click here to load reader

第 3 章 80x86 指令系统和寻址方式

Embed Size (px)

DESCRIPTION

第 3 章 80x86 指令系统和寻址方式. 教学要求: 1. 掌握指令系统的基本概念:指令格式、寻址方式、指令类型;掌握 8086/8088 指令系统中,各指令的格式、功能和注意事项。 2. 了解其他的寻址方式和指令类型。. 相关概念. 一、什么是指令系统? 计算机的指令系统就是指该计算机能够执行的全部指令的集合。 每种计算机都有它支持的指令集合。 16 位 8086 指令系统是整个 Intel 80x86 系列微处理器指令系统的基础。. 操作码. 操作数. · · ·. 操作数. 二、指令格式 - PowerPoint PPT Presentation

Citation preview

PowerPoint 2.







MOV AX , MASK [ BX ] [ SI ]

4576H
4576H→AX
AX=4576H
R R
16AXBXCXDXSIDISPBP

VARWVARB



3.2AX=BX=
1234H→AX

DS=2000H
MOV ES:[1000H] AX
“[”“]”MOV BX, VARWVARW
VARW
[R]

3.4MOV BX, [DI]DS=1000HDI=2345H12345H4354HBX
DI

BXBPSIDI8/16
X[R]X816
RXEA

3.5MOV BX, [SI+100H]DS=1000HSI=2345H12445H2715HBX
EA=SI+100H=2345H+100H=2445H
PA=DS*16+EA=1000H*16+2445H=12445H

BXBPSIDI
[BR+IR]

3.6MOV BX, [BX+SI]DS=1000HBX=2100HSI=0011H12111H1234HBX
PA

7.
BXBPSIDI8/16
X [BR+IR]
BRIRXEA

3.7MOV AX, [BX+SI+200H]DS=1000HBX=2100HSI=0010H12310H1234HAX
DSEA

“”
MOV CXSS[SI]
PA1 =DS4+[BP]
PA2 =SS4+ [SI]


JMP TABLE [ BX ]


IP
2JMP NEAR PTR PROGA
PROGANEAR PRT168000H ~ 7FFFH -32768 ~ +32767IP-32768 ~ +32767

DS=2000H 232F8H= 3280H 264E4H=2450H
JMP BX ; IP=1256H

PA=30000+0020+1200=31200H
CS=0000HIP=1000H31220H=40H
31221=01H31222H=00H31223=10H
CS=1000HIP=0140H31220H=40H
31221=01H31222H=00H31223=10H


LEA LDS LES
CBW CWD
MOV  Reg/Mem Reg/Mem/Imm
Reg—RegisterMem—MemoryImm—Immediate816


MOVMOV
3CS
4 MOV  DS100H
5MOV  100HAX
6IPMOV

PUSH Reg/Mem

CS2

IN AX, PORT
AL PORT
IN AX, DX
ALDX


AX
AX
OUT PORT, AX
PORTAL
OUT DX, AX
DXAL


MOV DX 3C0H

ALBX+AL
BXALAL

MOV AL3
LDS/LES Reg, Mem
LDS SI[10H]
LES DI[BX]
MOV BXOFFSET TABLE ; BX=1000H
LEA BXTABLE ; BX=1000H
LDS BX TABLE ; BX=0040H
; DS=3000H
; ES=3000H
40 H
00 H
00 H
30 H
SPSP+ 2
AL1AH)= FFH
CWD AX DX,AX
AX1DX)= FFFFH
AX= 0BA45H
CBW ; AX=0045H

816
ADDADCINC
MULIMUL
DIVIDIV

1 INC OPR
1
——
DF IF TF
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF

1CF = 1CF = 0

AAH + 7CH126HCF = 1


86H + 7CH100HZF = 1
ZF10

86H + 7CH100HD70SF = 0




AFAuxiliary Carry Flag




AAH + 7CH126HOF = 0




: n=8 bit -128~127 , 0~255
0 0 0 0 0 1 0 0
+ 0 0 0 0 1 0 1 1
0 0 0 0 1 1 1 1
(+4)+(+11)=+15 OF=0
4+11=15 CF=0

: (+9)+(+124)=-133 OF=1
: 9+124=133 CF=0


1 0 0 0 0 0 0 1 0
(+7)+(-5)=+2 OF=0
7+251=258 CF=1

1 0 1 1 1 1 1 0 0
(-121)+(-11)=+134 OF=1
135+245=124 CF=1


2DXAXDXBXCXBXDX=0020HAX=0F365HBX=0005HCX=0E024H
ADD AXCX AX=0D389HCF=1
ADC DXBX DX=0008HCF=0

1 DEC OPR
1
OPR - OPR
SUB AL50 AL>=50 AL50→AL
INC AH AH+1→AH
Bellow …
CF 1→ 9 8 8 0 H

MUL SRC
IMUL SRC
ALSRCAXAXSRCDXAX
AXAL ×SRC
DXAXAX × SRC
IMULMUL

OFCF
MUL——AHDX0OF=CF=0OF=CF=1
IMUL——OF=CF=01

MUL BL AX=OBF4H=3060OF=CF=1
AX80

IMUL BL AX=FAF4H=1292OF=CF=1
AX8
(C - 120 + A*B) / C

CWD
MOV AX, A
ADD AX, BX ;32
ADC DX, CX
AHAX/SRC
DX DXAX/SRC
DIVIDIV
DIV BL AL05H5AH7CH124

IDIV BL ALF3H13AH24H36


2IDIV0-128127-3276832767

59 10 0000 0101 0000 1001 BCD

+ 08 + 0000 1000
0010 0111BCD
AL49AF=1AL=AL+6AF=1
AL>=0A0HCF=1AL=AL+60HCF=1SFZFPF
BCD
ADD ALBL AL=68H+28H=90H
DAA AL=96H
BCD68+28=96
AL>=0A0HCF=1AL=AL60HCF=1SFZFPF
BCD
SUB ALBL AL=68H28H=40H
DAS AL=40H
BCD6828=40

AL=AL+6AH=AH+1AF=CF=1 AL4
CF=AF=0AL4

ADD ALBL AL=08H+09H=11H
AAA AX=0707H
BCD68977

AL=AL6AH=AH1AF=CF=1AL4
CF=AF=0 AL4
OFPFSFZF
SUB ALBL AL=08H09H=FFH
AAS AX=0509H
BCD680959

ANDORNOTXOR


DSTDSTSRC
015010DCH11011100B“
AND BH, 0DCH “

OR DST, SRC
""
DSTDSTSRC
1346105AH01011010B“
OR BL5AH "

NOT OPR * OPR
NOT AX AX=7875H

XOR DSTSRC
“”
DST DST SRC
AH=46H0257
0257100A5H10100101B“XOR  AH 0A5H”

TEST OPR1OPR2
OPR1 OPR2
AX1200L
TEST AX1000H
1CL0~255816

SALShift Algebraic LeftSARShift Algebraic Right
SAL/SAR OPR, CL/Imm


/0
ROL/ROR OPR, CL/Imm
RCL/RCR OPR, CL/Imm
MOV DXBX
MOV CL03H
ADD DXSI DX←7×BX3×AX
12

REP
3CX=CX-11

Move String Instruction
DS[SI]→ES[DI]
DF=0SIDI
DF=1SIDI

SI←SI±2, DI←DI±2

1 → SI
2 → DI




AL→[DI]AX→[DI]
DI

SI

DI←DI±1
DI←DI±2
SI←SI±1
SI←SI±2
REPE/REPZ
2

2

[SI][DI]





SCASW——
ALAXDI
AL[DI]
ES→
ES:DI→
ALAX

IP← IP+ 16
IP← EA
IP← OPR
IP← EA
CS← EA+2
IP← IP+ 16
……
IP← EA
IPCS

IP← OPR
IP← EA
CS← EA+2
MOV WORD PTR [BX+2]1500H
JMP FAR [BX] 1500H:1000H



JS
JB/JNAE
JNZ/JNE
JNS
JNB/JAE

JNBE /JA



JB/JNAE
JBE/JNA

JG/JNLE
Jump Greater or Jump Not Less or Equal



JL/JNGE
JLE/JNG
Jump Less or Equal or Jump Not Greater

CX≠0
MOVSB
MOV AXX
CMP AX50
CX≠0“”
LOOP
2CX≠0ZF=1
CX←
2CX≠0ZF=0
CX←
MOV AL20H ASC20H
JNZ NEXT ZF=0
INC BX ZF=11
NEXT: INC SI
CALL
RET
CALL far ptr label
CALL dword ptr mem
JMPCALL
——IP
——IPCS

DST16 IP←IP+ D16
IPCS

SP←SP - 2 SP+1,SP←CS
SP←SP - 2 SP+1,SP←IP
IP ←23
CS ←45
SS→

SP-1 →
SP→
CS
CS
CS
IP
SP-2 →


IP
IP

SP-3 →
SP-4 →

CS→

CS8
CS8
IP8
IP8
OP


SP←SP - 2 SP+1,SP←CS
SP←SP - 2 SP+1,SP←IP
IP ←EA CS ←EA+2
DSTEAEA+1IPEA+2EA+3CS

SP← SP + 2
RET EXP
RET
SP←SP + 2


2560~0FFH41K
“”“”“”“”N4N
0IP
0CS
1IP
1CS
NIP
NCS
255IP
255CS
INTO
OF1
INTO
IFTF
IRET
INT
1IP
2CS
3
1INT
2CALLINT
3RETIRET

NOPNOPNOP

ESC 20HAL FADD ST(0),ST

CPUCoprocessorCPU
8086WAIT80878086CPU80878086808780868087