第三章 8086指令系统

Click here to load reader

download 第三章  8086指令系统

of 125

description

3.1 指令格式 / 寻址方式 3.2 8086 指令系统 概述 3.3 8086 指令系统 数据传送指令 算术运算指令 逻辑运算、移位、循环指令 串操作指令 控制转移指令 处理器控制指令 第三章小结 第三章思考题. 第三章 8086指令系统. 汇编语言指令格式与寻址方式 8086 的寻址方式 8086 指令系统. 重 点. 3-1-1 汇编语言指令格式 1. 标号、标示符 2. 指令助记符 3. 操作数 4. 注释. 3-1 汇编语言指令格式与 寻址方式. 操作数. 注释. 指令助记符. 对操作数寻址 - PowerPoint PPT Presentation

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.