第三章 8086指令系统
-
Upload
alexavier-jacob -
Category
Documents
-
view
122 -
download
0
description
Transcript of 第三章 8086指令系统
-
80863.1 /3.2 8086 3.3 8086
-
80868086
-
3-1 3-1-1 1.
2.3.4.
-
3-1 -2 8086 . MOV AL80 H MOV AX1090 H MOV CX,100
-
MOV AX[ 1070 H ] DS = 2000 H 21070 H 21071 H AX = 3020 H
-
MOV BXCS[ 3000 H ] MOV AH[ 1000 H ] 21000 H MOV AHBL MOV AXBX MOV CXAX56 H
-
1BX DS = 2000 HES = 3000 HBX = 1000 H 1MOV AX[BX] AX [21000 H] [21001 H] AX = 5B40 H MOV CXES[BX] AX [31000 H] [31001 H]
-
2BP MOV AX[BP] SS = 5000 HBP = 3000 H 53020 H53021 H AX AX = 4A56 H
3SIDI 1) MOV AX[SI] CS = 3000 HSI = 4000 H EA=4000H,=34000H, AX=201A H
-
2MOV BX[DI] DS = 5000 HDI = 0200 HBX [50201 H][50200 H] BX = 3220 H
4BXBPSIDI
-
BX = 5000 HSI =2000 HDS =4000 H, SS = 1000 HBP = 3100 H MOV AX[BX+SI] EA=5000+2000=7000H AX [47001 H] [47000 H] AX = 2A32 H MOV AX[BP + SI + 0020 H] EA=3100+2000+0020=5120H
-
BX = 0158 HDI = 10A5 HDS = 2100 H = 1B57 HDS 1 MOV AX[1B57 H] = 1B57 H = 21000 H+1B57 H = 22B57 H2 MOV AX[BX] = 0158 H = 21000 H + 0158 H = 21158 H3BX MOV AX[BX+1B57H] = 0158 H + 1B57 H = 1CAF H = 21000 H + 1CAF H = 22CAF H4 MOV AX[DI]
-
= 105A H = 21000 H+105A H = 220A5 H5DI MOV AX[DI+1B57H] = 105A H + 1B57 H = 2BFC H = 21000 H + 2BFC H = 23BFC H6 MOV AX[BX + DI] = 0158 H+105A H = 11FD H = 21000 H + 11FD H = 221FD H7 MOV AX[BX + DI+1B57 H] = 0158 H+105A H + 1B57 H = 2D54 H = 21000 H + 2D54 H = 23D54 H
-
EA
-
+
-
3 - 2 8086 3. 2.1 8086 1 ~ 6 1
-
16
16
16
3 - 3 8086 REG 11 REG R/MMOD REG R/MMOD REG R/M 11 REG R/MMOD R/MREGMODR/M
-
CPU OP 8 3
w
d
S
s=1 8 16 OP d/s ww=1w=0d=1d=1
-
2 2 1 2 1 2 1 2 1 2 2 2
-
3.2.2
-
3 - 4 6 5 9 7
8
11
12 [ BP + DI ][ BX + SI ][ BP + SI ][ BX + DI ][BP+DI+][BX+SI+][BP+DI+][BX+SI+]
-
3 - 5 30 9+EA1ADDSUB 16+EA2 40 17+EA2 101 101MOV 2 0 8+EA1 9+EA1 40 10+EA1 MOV 20 8+EA1
-
20 9+EA1 8 70~770 16 118~1330 MUL 76~83+EA1 124~139+EA1 8 80~980 16 128~1540 IMUL 86~104+EA1 134~160+EA1 8 80~900 16 144~1620 DIV 8 86~96+EA1 16 150~168+EA1 8 101~1120 IDIV 16 165~1840
-
IDIV 8 107~118+EA1 16 171~190+EA 1 1 20 8+4*0 1 15+EA2 20+4*+EA2 150 150 JMP 24+EA2 18+EA1 110JCXZ 60 180 40 160
-
1SS=1000HBP=2000HDS=5000H BX=4000H MOV AX2C10H MOV AX[2C10H] MOV AX[BX+1C00H]] MOV BX[BP+0120H] MOV AX[BP+ SI] MOV AH[BX+SI]
-
3-3 8086
-
3-3-1MOV LEAPUSH LDSPOP LES XCHG LAHF PUSHFXLAT SAHF POPF IN OUT
-
1. 1.MOV MOV dstsrc ; dst src :MOV DS, AX ;DS AX MOV CH, 20 ;CH 20 MOV BL, AH ;BLAH MOV AX, [BX] ;AX[BX] MOV [DX], AX ;[DX]AX MOV AX, [BX+0060H] 2 PUSH src src POP src src
-
SS=0100 H SP=0009HAX=12C3H BX = 5070 H PUSH AX ;[1] SP SP-2 [2] [41008][41007H] AX
-
POP AX AX SP SP+2
-
PUSH AX PUSH BX . POP BX POP AX 18086 2SP 2 1 SP 2 3CS 1CS 4
-
(3) XCHG dstsrc XCHG AXBX XCHG ALBH XCHG BX[1000H] XCHG [2100H]DH XCHG SIAX 1dst src 2CSIP
-
4 XLAT () AL[BX+AL] BX AL
-
g f e d c b a 0 0 1 0 0 0 0 0 0 40H 1 0 1 1 1 1 0 0 1 79H 2 0 0 1 0 0 1 0 0 24H 3 0 0 1 1 0 0 0 0 30H
-
0~93 MOV AL3 MOV BX2000H XLAT XLAT: AL=30H
2000h40792430191202780010
-
2(1) LEA reg16,men16 LEA AX[1000H] AX=1000H LEA SP[0500H] SP=0500H LEABX[BP+SI](2)DS: LDS reg16men32 2DS2 LES reg16mem32 2ES 2
-
LDS DI[2100H]2100H2101H2102H2103H3104H1C H20 H21 HB5 H
DI=201CHDS=B521H
-
31LAHF ;AH SAHF ;AHD7 D6 D5 D4 D3 D2 D1 D0
-
(2). PUSHF SP SP-2FLAGH (3). POPF FLAG [SP+1][SP] SP SP+2
-
41 IN ALn OUT nAL IN AXN OUT NAX 0 ~ 255 IN AL 20H IN AX 30H OUT 46HAL OUT 80HAX
-
2 IN ALDX OUT DXAL IN AXDX OUT DXAX 0000H ~ FFFFH
MOV DX1000H IN ALDX IN AXDX OUT DXAL
-
: 1/ 2/ 1~ 255 3-6 IBM PC P63
-
3-3 3-3-2ADDADCINCSUBSBBDECDASMULIMULAAMDIVIDIVAAMAAADAADASAAMAAM
-
1 ADD DSTSRC DST DST+SRC(1) . ADD AL50H ; AL AL+50H (2). ADD CX1000H ;CX CX+1000H (3). ADD DI SI ;DI DI+SI (4). ADD [BX+DI]AX BX=1000H, DI=2000H, AX=1234H EA=BX+DI=3000H 1234+ 4025H =5259H [3000H] 5259H
-
2. ADC DSTSRC DST DST+SRC+CF ADC AXSI ; AX AX+SI+CF ADC DX[SI] DX DX+[SI]+CF ADC BX3000H BX BX+3000H+CF ADC AL5 AL AL+5+CF
-
42000H3000H2000H 10008432H+20007F00H = 1).:1).4 2;2)., CF;3).,;
-
2).: CLC ; MOV SI , 2000H ; MOV AX [SI] ;16AX MOV DI 3000H ; ADD AX [DI] ; MOV [SI] AX ;162000H MOV AX [SI+2] ; 16AX ADC AX [DI+2] ;16 MOV [SI+2]AX
-
3. INC src ; src src+1 INC AX AX AX+1 INC BL BL BL+1 INC BYTE PTR[BX+DI+500]
INCAFOFPFSFZF CF
-
1 SUB DSTSRC DST DST-SRC SUB BXCX BXBX-CX SUB [BP+2]CL [BP+2] [BP+2]-CL SUB AL20 AL AL-20 SUB SI5010H SI SI-5010H SUB WORD PTR [DI]1000H [DI+1][DI] [DI+1][DI]-1000H
-
2 SBB DSTSRC DST DST SRCCF SBB AX2030HAX AX 2030H CF SBB WORD PTR [DI+2]1000H; SBB DX, [BX+20H] 3 DEC DSTDST DST 1 DEC AX AX-1AX DEC BL BL BL-1 DEC BYTE PTR [DI+2] ;DI+2
-
4 NEG DST DST0 -DSTNEG AL ;ALAL NEG CX ;CXCX 5 : CMP DSTSRC DST-SRC CMPCFOFSFZF
-
816 1632 8086 AL8AX 16 DXAX
-
MUL IMUL3 -2= 6 3 14 = 422AH 30011-2 1110 1411101 00113 1110-214 0010 10102A
-
2 00113 00102 0000 01106 1 000 0110 1111 1001+1=1111 1010=FAH= -6 3 -2= - 6 3 14
-
1 MUL src AX ALsrc DXAX AX src 8 16
-
MUL BL AX ALCLMUL CX DXAX AX CXMUL BYTE PTR [DI]ALDI8 AXMUL WORD PTR [SI]AXSI16 AX DX 1
-
4902H403AH0510H~0513H MOV AX4902H MOV BX403AH MUL BX MOV [0510H]AX MOV [0512H]DX
2
-
2 IMUL src : AX AL*src : DXAX AX*src IMUL BLALBLAX IMUL DI AXDIDX.AX IMUL BYTE PTR [DI] ALDIAX
-
1 DIV src : AXsrc AL , AH : (DX. AX src, AX , DX
-
8 (16) (8)
(8) (8)
AH ALAH AL
-
16 (32) (16)
(16) (16)
DX AXDX AX
-
DIV CL AL AX/CL DIV WORD PTR [DI] DI=1000HDX=2000HAX=3500H 1000H 1020H 20003500H1020 H=? AXDX1000H1001H2010
-
2 IDIV src AL AX srcAH AX (DX AX) src DX IDIV BL AL() AX BL IDIV WORD PTR [DI]
-
: ,AFCFOFPFSFZF IDIV -32768~+32767-128~+1270 8086 AHDX
-
3 CBW
ALAH AL< 80H, CBW, AH=00H AL>=80H,CBW,AH=FFH AL=88HCBWAH=FFH 1000 1000 11111111 1000 1000 AL AH AL
-
4 CWD AXDX AX< 8000H, CWD,DX=0000H AL>=8000H,CWD,DX=FFFFH
-
1AX=-30, CL=+8 DIV CL : AL() = -3 AH()= - 6
24903H86HCL MOV AX 4903H MOV BL 86H DIV BL MOV CL AL HLT
-
137+48= MOV AL, 37H MOV BL, 48H ADD AL, BL DAA HLT2 9 6=? MOV AL, 09H MOV BL, 06H MUL BL AAM HLT
-
3-3-3
-
TEST src dst NOT AND OR XOR 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0
-
AND dstsrc OR dstsrc XOR dstsrc NOT dst TEST dstsrc 1AND AXBX AND AH0FH OR AL,0F0H ; TEST AL , 01 ;ALD1=1? XOR AX , AX ;AX
-
2AH=10011101AH AND AH0FH 1001 1101 AND 0000 1111 0000 11013 OR AH50H OR AX0FF00H
-
4AL01 MOV AL71H XOR AL03H 0000 0011 HLT 0101 0001 AL XOR 0000 001 1 0101 0010
-
5AL012 MOV AL40H TEST AL 07HAL012 HLT 0100 1000 AND 0000 0111 0000 0000
-
ANDOR1NOT,XORTEST10
-
SHL dstcount
SHR dstcount
SAL dstcount
SAR dst count
-
CFOFPFSFZF11CL1:SAL DX,1 ;DX1 MOV CL,4 SAL AX,CL ;AX4 SHL AL,CL ; SHR AL, CL ;AL4
-
2BCDBLALBCDALMOV CL4 SHL BLCL OR ALBL HLT
-
2AX10 10 =2+8 22MOV BXAX MOV CL2 SHL AXCL 24 ADD AXBX AX5 SHL AX1 AX10 HLT
-
ROL dstcountROR dstcountRCL dstcountRCR dstcount 1 ROL AL1 AL 1001 0001 0010 00112 MOV CL 2 ROL BHCL BH 1010 1111 1011 1110
-
12
-
3-3-4MOVSB/MOVSWCMPSB/CMPSWSCASB/SCASWLODSB/LODSWSTOSB/STOSB
-
1SIDSDIES2SIDI DF=0SIDI1+2 DF=1SIDI3DSES4)
-
:
1 REP MOVSB/MOVSW(1). CX=0,;(2). CX 0,,CX CX-1, SI DI12REPZREPE (1). CX=0,ZF=0; (2). CX 0,,CX CX-1, SI DI1
-
3REPNZREPNE (1). CX=0,ZF=1; (2). CX 0,, CX CX-1, SI DI 1 2
-
MOVS : MOVSB : MOVSW1). SI( DS),DI( ES);2). CX3). CLDDF=0SI+12DI+1( 2) STDDF=1SI-12DI-1 24). REP CX
-
1. 100,1000H2000H. LEA SI, [1000H] SI LEA DI, [2000H]DI MOV CX,100 CLD REP MOVSB 100 HLT
-
CMPSB / CMPSW SRC - DST : CMPSW : CMPSB [SI] [DI] DI DI 1 2 SI SI 1 2
-
CMPSW / CMPSBREPNZ / REPNE REPZ / REPE
-
SCASB / SCASW AL (AX [DI] DI DI 1 2 ALAXES DI :AL AX .
-
2. 1000,256, $ (ASCII24H),$BX,BX. 1):$, SCASB;REPNZ,,$?
-
2). MOV DI, 1000H ; MOV CX, 256 CLD ; MOV AL, $ REPNZ SCANB JZ ZER ;$, DEC DI ;$ MOV BX,DI ;$BX JMP ST0ZER: MOV BX,0ST0: HLT
-
SCASB / SCASW ESDIAL REPNZ SCASB AL
-
LODSB / LODSW AL(AX) [SI] SI SI 1( 2) DSSIALAXAXAL LODSB / LODSW STOSB / STOSW
-
30404H256 CLD LEA DI0404H DI MOV CX256 ; 256 XOR AX,AX AX REP STOSB HLT [DI] AL(AX) DI DI 1( 2) ALAXES DI
-
4:. CLD MOV CX,100 ;100 MOV SI,2400H ; MOV DI,1200H ; REPE CMPSB ; ,ZF=0,CX=0 AND CX,0FFH ;100 JZ EQQ ;, DEC SI ;, MOV BX,SI ; MOV AL,[SI] ; JMP STOPEQQ: MOV BX,0 ;STOP:HLT
-
3-3-5
-
IP+ CSIP CSIP
-
1 JMP 1000H IP IP+1000H JMP SHORT LOP1LOP1 JMP FAR PTR LOP2 I P LOP2 CS LOP2 JMP DWORD PTR [BX] I P [BX] CS [BX+2]
- 2 JX X 1~3 -128~+1271 JE/JZ A=B JNZ/JNEA< >B2 JB/JNAE A =B JA/JNBEA >B JNA/JBEA
- 3JLA=BJGA >BJNGA
-
11000H1001 2000H
MOV BX1000H AL MOV AL, [BX] INC BX CMP AL[BX] JA LOP1 MOV AL[BX] ALLOP1MOV [2000H]AL HLT
-
LOOP LOOPZ LOOPNZ1LOOP CX CX-1CX; CX=0 DEC CX JNZ
-
2
MOV CX0100H KKK LOOP KKK CX-1CX MOV CX0100H KKK DEC CX JNZ KKK HLT
-
2LOOPZ / LOOPE CX-1CX ZF=1 CX=0ZF=0
3LOOPNZ / LOOPNE CX-1CXZF=0 CX=0ZF=1
-
3-3-61 CLC CF=0 ; CMC CF ; STC CF=1 ; CLD DF=0 ; STD DF=1 ; CL I I F=0 ; ST I I F=1 ;
-
2 HLT CPUHLTCSIPHLTCPU COU3ESC8086
-
WAITESC8086 ESC8086CPU4LOCK 8086 8086CPULOCKLOCKCPULOCK
-
CALL RET 1 CALL CALL 1000H 1IP SP SP-2 [SP] IP 2IP IP+1000H
-
CALL NEAR BCD11IPSP SP-2 [SP] IP2 IP BCD1
CALL AX 1IPSP SP-2 [SP] IP2 IP AX
-
CALL 2500H3600H 1CS 2IP 3I P 2500H CS 3600HCALL DWORD PTR [DI] 1CS 2IP 3I P [DI] CS [DI+2]
-
2RET
1 IP2 IP CS3RET N : RET 6 ,SP+6
-
1 INT n 1 2TFIF 3CSDS 4 n 4 IP CS 2 INTO 3) IRET
-
3INT 21H1 2TFIF 3CSIP 4 21H 4= 84 H IP 2000H
CS 3000H
-
42000H100$(ASCII 24),$AL,DI: MOV CX,100 CX MOV SI0FFFHDONINC SI CMP [SI]24H $? LOOPNZ DON ; $ MOV AL[SI] $AL MOV DISI $DI HLT
-
1 28086
-
1JMP 3000HJMP 3000H1000HCALL 3000H1000HCALL SHORT LOP1JMP DWORD PTR [BX]RET
-
22000H102000H1233401625603013102000H BXBXAL MOV BX2000H MOV AL[BX] MOV CX9DON1INC BX CMP AL[BX] JAE DON2 MOV AL[BX]AL
-
DON2DEC CX JNZ DON1 MOV BX2000H MOV [BX]AL HET 32LOOP
LOOP DON1
-
42000H100$(ASCII 24),$AL,DI: MOV CX,100 CX MOV SI0FFFH DONINC SI CMP [SI]24H $? LOOPNZ DON ; $ MOV AL[SI] $AL MOV DISI $DI HLT
-
1.0A00H0A02H,0A04H.2.AX,,4.3.0400H,4,4.4.BX,,.
-
5.Bx13(D13),0,AL 0,1,AL1..6.,1000H~10FFH .7.1000H,200,#(ASCII23H), # BX.