




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第一章8086/8088系統(tǒng)* 工作模式* 引腳信號1第一章8086/8088系統(tǒng)最小模式和最大模式的概念為了盡可能適應(yīng)各種各樣的使用場合,在設(shè)計8086/8088CPU芯片時,使它們可以在兩種模式下工作,即最小模式和最大模式。2第一章8086/8088系統(tǒng) 最小模式在系統(tǒng)中只有8086或者8088一個處理微器。系統(tǒng)中的所有的總線控制信號都直接由8086或8088產(chǎn)生。因此,系統(tǒng)中的總線控制電路被減到最少。3第一章8086/8088系統(tǒng) 最大模式是相對最小模式而言的 最大模式用于中等規(guī)模的或大型的8086/8088系統(tǒng)中。在最大模式系統(tǒng)中,總是包含有兩個或多個處理微器,其中一個主處理器就是8
2、086或者8088,其他的處理器稱為協(xié)處理器,它們是協(xié)助主處理器工作的。4第一章8086/8088系統(tǒng) 8086/8088到底工作在最大模式還是最小模式,這完全有硬件決定。5第一章8086/8088系統(tǒng)8086/8088的引腿信號特點 * 8086/8088的數(shù)據(jù)線和地址是復(fù)用的 * 除了第28腿和第34腿以外,8086和 8088的控制線引腿定義是一樣的。6第一章8086/8088系統(tǒng) 第21腿(RESET)是輸入復(fù)位信號的。在8086/8088系統(tǒng)中,CPU被啟動后,處理器的標志寄存器,指令指針寄存器IP,段寄存器DS,SS,ES和指令隊都被清除,但是代碼段寄存器CS被設(shè)置為FFFFH。7
3、第一章8086/8088系統(tǒng) 因為IP=0000,CS=FFFFH。所以,8086/8088將從地址FFFF0H開始執(zhí)行指令。通常,在安排內(nèi)存區(qū)域時,將高地址區(qū)作為只讀存儲區(qū),且在FFFF0H單元開始的幾個單元中放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)到一個特定的程序中。這個程序往往實現(xiàn)系統(tǒng)初始化,引導監(jiān)控程序或者引導操作系統(tǒng)等功能,這樣的程序叫引導和裝配程序。8第一章8086/8088系統(tǒng) 第22引腿用于從內(nèi)存或I/O接口往CPU輸入“準備好”(READY)信號 第23腿(TEST)是在多處理器系統(tǒng)中使用的。9第一章8086/8088系統(tǒng) A19/S6A16/S3:該高4位地址線和狀態(tài)線復(fù)用。在總線周期的前
4、一部分時間,A19/S6A16/S3腿用來輸出高4位地址,在總線周期的其余部分時間,則用來輸出狀態(tài)信息。 10第二章 指令系統(tǒng)直接尋址:所需的操作數(shù)通過指令直接提供的偏移地址來得到。MOV AX,2000H偏移地址:2000H段地址:(隱含DS) (DS)=3000H 2000H + 30000H 物理地址:32000H結(jié)果:(AH)=3050H OP AX 50 00 3032000H數(shù)據(jù)段 代碼段 11 寄存器間接尋址操作數(shù)在存儲器中的地址在(SI,DI,BP, BX)中。(1)若以SI,DI,BX間接尋址,操作數(shù)在現(xiàn)行數(shù)據(jù)段中 例:MOV AX,SI 1000H 20000H SI +
5、DS 物理地址:21000H 21 43 21000HAX 21 43 FF 00 12第二章 指令系統(tǒng)(2)若以寄存器BP間接尋址,則操作數(shù)在堆棧段中。 例:MOV AX,BP 3000H 20000H BP + SS 物理地址:23000H 23000HAX 21 4321 43 13第二章 指令系統(tǒng)(3)若指令中規(guī)定是段超越的,也可以尋訪其他段。 MOV AX,ES:BX 14第二章 指令系統(tǒng)直接變址尋址 寄存器相對尋址 由指定的寄存器內(nèi)容,加上指令中給定的8位或16位偏移量(當然有一個段寄存器作基本地址)作為操作數(shù)地址。 例 15第二章 指令系統(tǒng)例:MOV AX,countSI 例:M
6、OV AX,BP 2000H 30000H SI Count 35000H count (AX)=4525H +DS 45 2545 25 3000H AX 0030OP 16第二章 指令系統(tǒng)變址地址也可以使段跨越前綴。MOV DL,ES:STRINGSI正常情況下,SI,DI,BX作變址,與DS聯(lián)用。若用BP變址,與DS聯(lián)用。 17第二章 指令系統(tǒng) 基址變址尋址 操作數(shù)的偏移地址是一個基址寄存器(BX,BP)和一個變址寄存器的內(nèi)容之和。(SI,DI) 基址寄存器=BX;段寄存器是DS隱含 基址寄存器=BP;段寄存器是SS 例 18第二章 指令系統(tǒng) 該尋址方式同樣可以段超越使用 MOV AX,
7、ES:BXSI0158H 10A5H BX + DS 221FDH DI 21000H AX 214521 45 MOV AX,BXDI DS =2100H;BX =0158H; DI=10A5H 19第二章 指令系統(tǒng) 操作數(shù)偏移地址由一個基址寄存器、一個變址寄存器的內(nèi)容和8位或16位位移量之和構(gòu)成。 例:MOV AX,MASKBXSI 1000H 2000H SI BX 33250H 33 44 3344 AX 30000H (MASK) DS 0250H 該地址也可以段超越。 20第二章 指令系統(tǒng) 尋找一個操作數(shù),只能在某一個段的64KB范圍中尋找。已什么寄存器間址、變址等,則操作數(shù)就在什
8、么段域中,8086/8088有約定,只要不在指令中超越這個約定,就按平常狀態(tài)來尋找操作數(shù)。 21第二章 指令系統(tǒng)存取方式約定段可修改(段超越)偏移地址取指令(代碼)CSNOIP堆棧操作SSNOCP源串DSCS、ES、SSSI目串SSNODIBP為基寄存器SSCS、DS、ES組合通用數(shù)據(jù)讀寫DSCS、ES、SS組合22第二章 指令系統(tǒng)(1)操作碼(OP)的機器語言表示(3)指令的執(zhí)行時間 (2)尋址方式的機器語言表示 23第二章 指令系統(tǒng) 8086/8088指令是多字節(jié)指令,一條指令可由17個字節(jié)構(gòu)成,操作碼通常是第一字節(jié)表示。 OP d w0 7 0 字節(jié)操作 0 源操作數(shù) W= d= (雙操
9、作數(shù)指令) 1 字操作 1 目的操作數(shù) 說明:Ret的用途。 24第二章 指令系統(tǒng) 若采用立即尋址:操作碼: OP s w0 7 sw = 01 指令有16位立即數(shù),而且作字操作 11 指令有8位立即數(shù) 00 字節(jié)操作25第二章 指令系統(tǒng)機器指令的第二個字節(jié)用于表明尋址方式 Mod Reg R/m2 65 32 0 Reg表示寄存器方式,雙操作數(shù)指令規(guī)定必須有一個操作數(shù)在寄存器中,該寄存器由reg決定。Mod與r/m結(jié)合在一起確定另一操作數(shù)的尋址方式。 26第二章 指令系統(tǒng)若無段超越,則使用隱含段寄存器,若指定段前綴,則在機器指令之前的一個字節(jié)來表示。 001 SEG 1107 0 標志 例
10、27第二章 指令系統(tǒng) ADD CL,BH 000 000 1 0 02H d: reg為目的操作數(shù) 11 001 111 CFH mod ret r/w 與w=0寄存器尋址 CL BH CF02高 低 OPW:字節(jié)28第二章 指令系統(tǒng) ADD DISP BXDI,DX 000000 0 1 w:字運算 OP d:reg為源操作數(shù) 10 010 00100011 mod ret r/m DISP 相對基址變址尋址 DX 29第二章 指令系統(tǒng) 指令執(zhí)行時間 f=5MHz T= 1/5MHz=0.2sADD AX,BX 寄存器寄存器方式 T=30.2=0.6(s)ADD AX, DISPBXDI 存
11、儲器寄存器方式 T=(9+EA). ().(s) 30第二章 指令系統(tǒng) 指令系統(tǒng)可以分為6組數(shù)據(jù)傳送指令 邏輯運算控制轉(zhuǎn)移處理機控制串操作算術(shù)指令31第二章 指令系統(tǒng) 1、通用數(shù)據(jù)傳送指令: MOV; PUSH; POP; XCHG 3、地址傳送指令: LEA ; LDS; LES 4、寄存器傳送指令: LAHF; SAHF; PUSHF ; POPF(標志入AH) (AH入標志) (標志入棧) (標志出棧 ) 2、累加器專用傳遞指令: IN, OUT, XLAT 這組指令只限于累加器AX,AL。 32第二章 指令系統(tǒng) MOV傳送指令: MOV OPRD1,OPRD2 目的 源CPU內(nèi)部寄存器
12、之間數(shù)據(jù)傳送(除CS,IP外) MOV AL,BL MOV AX,BX MOV DS,BX 33第二章 指令系統(tǒng)立即數(shù)傳送至CPU內(nèi)部的通用寄存器(段寄存器除外)AX,BX,CX,DX,BP,SP,SI,DI MOV CL,4 MOV AX,03FFH MOV SI,057BH 34第二章 指令系統(tǒng)CPU內(nèi)部寄存器(除CS,IP)與存儲器(所有尋址方式)之間的數(shù)據(jù)傳送 MOV AX,SI MOV AL,VFFER MOV AX,PPBXSI 35第二章 指令系統(tǒng)MOV指令不能實現(xiàn)存儲單元之間的數(shù)據(jù)傳遞,但可通過CPU內(nèi)部寄存器為橋梁來實現(xiàn) MOV AL,ARER1 MOV ARER2,AL 3
13、6第二章 指令系統(tǒng)二個段寄存器之間不允許直接傳遞信息 37第二章 指令系統(tǒng) PUSH 進棧指令堆棧是以“先進后出”方式工作的一個存儲區(qū),它在堆棧段中。其段地址在SS中。只有一個出口,偏移地址在SP之中,SP在任何時候都指向棧頂。 38第二章 指令系統(tǒng) PUSH AX SP SP - 2 (SP+1) AH (SP) AL 堆棧的存取以字為單位,可以使用除立即數(shù)以外的其他尋址方式來保存程序區(qū)或寄存器的內(nèi)容。 低 高 高 低 AH AL 后 前 SP SP39第二章 指令系統(tǒng) POP 出棧指令將壓入堆棧的數(shù)據(jù)彈出。 例:POP AX AL (SP) AH(SP+1)SP SP+2 AL 07 AH
14、 21 (AX)=2107 2107后 前 SP 兩條指令均不影響標位。這兩條指令主要用于數(shù)據(jù)保護。 POP SP 40第二章 指令系統(tǒng) XCHG:交換指令 XCHGOPR1,OPR2把一個字節(jié)或字的源操作數(shù)與目的操作數(shù)相交換,交換可在通用寄存器之間,通用寄存器與存儲器之間。但段寄存器除外。 XCHG AL,CL XCHG BX,DATASI XCHG BX,BP+SI 41第二章 指令系統(tǒng)IN 輸入指令: CPU I/O DB CB AB 輸入指令允許把一個字節(jié)或一個字由輸入端口傳送至AL或AX。由于8086可供64K的I/O端口空間,所以可有65536個I/O端口,前256個端口(0FFH
15、)可以在指令中指定;端口號超過256個,則將端口地址放在OX,再用輸入指令輸入數(shù)據(jù)。 例 42第二章 指令系統(tǒng) IN AX,28H IN AL,29H端口號大于256: MOV DX,3FCH IN Ax,DX輸入數(shù)據(jù)是字還是字節(jié),取決于外設(shè)DB寬度。 43第二章 指令系統(tǒng) OUT: 輸出指令 輸出指令允許把AL或AX中的一個字節(jié)或一個字內(nèi)容傳送至輸出端口 OUT 14H,AL端口號大于256: MOV DX,0714H OUT DX,AX 44第二章 指令系統(tǒng) XLAT:換碼指令 用于將一種代碼轉(zhuǎn)換為另一種代碼。用指令之前,先將表的首地址放入BX中,在AL中置好偏移量(即所需換碼字節(jié)在表中的
16、相對位置),然后XLAT指令將(BX)內(nèi)容加上AL中的內(nèi)容形成的偏移地址的單元內(nèi)容取到AL中。 格式:XLAT 或 XLAT 執(zhí)行操作:AL (BX+AL) 例 45第二章 指令系統(tǒng)MOV BX,OFFSET TABMOV AL,1XLAT B C A BXTABAALBX+AL46第二章 指令系統(tǒng) LEA: 有效地址送寄存器 格式: LEA OPRD1,OPRD2 將源操作數(shù)OPRD2的偏移地址送到目的操作數(shù)OPRD1。 源操作數(shù)必須是存儲器,目的操作數(shù)是一個16為通用寄存器。 例 47第二章 指令系統(tǒng) LEA BX,BUFR 將變量BUFR的偏移地址給BX BX 23E0BUFR48第二章
17、 指令系統(tǒng) LEA BX,BX+SI 若 BX = 0400H, SI = 003CH 偏移地址 =0400+003C =043CH BX 043C49第二章 指令系統(tǒng) LDS: 地址指針送寄存器和DS指令 格式:LFD OPRD1,OPRD2 指令將源操作數(shù)OPRD2所指定存儲區(qū)的4個相繼字節(jié)送到指令指定的寄存器及DS寄存器中。該指令常指定SI。 例 50第二章 指令系統(tǒng) LDS SI,BX執(zhí)行前:BX=10H; DS=C000H; (C0010H)=0180H (C0012H)=2000H執(zhí)行前后: (SI)=0180,(DS)=2000H c0011H c0010H 80 00 20 0
18、1 c0012H c0013H S ID IBXDS+C0010H51第二章 指令系統(tǒng) LES : 地址指令送寄存器和ES指令 格式 LES OPRD1,OPRD2 將源操作數(shù)OPRD2指定存儲器4個相繼字節(jié)送到指令指定的寄存器及ES中。該指令常指定寄存器DI。 例 52第二章 指令系統(tǒng) LES DI,BX執(zhí)行前: DS=B000H,BX=080AH, (0B080A)=080AH (0B080CH)=4000H執(zhí)行后:DI =080AH,ES= 4000H 0B080AH DIOA 00 40 ES08 0B080BH 0B080CH 0B080DH 上述三種尋址包括所有尋方式。 53第二章
19、 指令系統(tǒng) LAHF : PSW送AH指令 格式:LAHF 執(zhí)行:AH PSW低字節(jié) (進位)(奇偶)(半進位)(零)(符號) CF PF AF IF SF 54第二章 指令系統(tǒng) SAHF:AH送PSW 執(zhí)行:PSW低字節(jié) AH 55第二章 指令系統(tǒng) PUSHF:標志進棧 格式:PUSHF 執(zhí)行:SP SP-2 PSW (SP+1,SP) 低 高 PSWH SP PSWL 56第二章 指令系統(tǒng) POPF:標志出棧 執(zhí)行:PSW (SP+1,SP) SP SP+2 低 高 PSWH PSWL SP57第二章 指令系統(tǒng)2、減法指令:SUB SBB DEC NEG CMP 1、加法指令:ADD AD
20、C INC 4除法指令: DIV IDIV CBW CWD 3、乘法指令: MUL IMUL 5、十進制調(diào)整指令58第二章 指令系統(tǒng) 格式:ADD OPRD1,OPRD2 OPRD1 OPRD1+OPRD2 目的操作數(shù)OPRD1可以是AX,任一通用寄存器,存儲器。源操作數(shù)OPRD2可以是AX任一通用寄存器,存儲器,立即數(shù)。 ADD AL,30H ADDAX,SI ADD BETASI,AX ADD DI,CX 這些指令將對標志產(chǎn)生不同的影響。 59第二章 指令系統(tǒng) ADC帶進位加法 格式:ADC OPRD1,OPRD2 執(zhí)行:OPRD1 OPRD2+OPRD1+CF 該指令多用多字節(jié)運算 60
21、第二章 指令系統(tǒng)低 高 56 THORD 87 21 43 54 86 10 32 AA ID 75 32 SECOND FIRST 兩個四字節(jié)數(shù)加,分別放在FLRST和SECOND起始之單元,存放時低字節(jié)在地址處。MOV AX,F(xiàn)IRST; (AX)=8756HADD AX,DECOND; (AX)=8756+8654MOV THIRD,AX; =1DAAH CF=1MOV AX,F(xiàn)IRST+2(AX)=4321HADC AX,SECOND+2 (AX)=4321+3210+CFMOV THIRD+2 =7532H 61第二章 指令系統(tǒng) INC:加1 指令 格式:INC OPRD 該指令的操
22、作數(shù)OPRD可以是通過寄存器,也可以是存儲器單元。 執(zhí)行:OPRD OPRD+1 INC AX; AX=AX+162第二章 指令系統(tǒng) 注意 執(zhí)行加法指令時,CF位是根據(jù)最高有效位是否有進位而設(shè)置。有進位CF=1,無進位CF=0。 OF根據(jù)符號及其變化情況而設(shè)置。若兩個操作數(shù)符號相同,結(jié)果的符號與之相反,則溢出OF=163第二章 指令系統(tǒng) SUB:減法指令 格式:SUB OPRD1,OPRD2 操作:OPRD1=OPRD1-OPRD2 目的操作數(shù)OPRD1可以是AX,通用寄存器,存儲器單元, 源操作數(shù)OPRD2可以是立即數(shù),通用寄存器,存儲器單元。 64第二章 指令系統(tǒng) 例 SUB CX,BX;
23、 CX=CX-BX SUB BX,CL; BX=BX-CL65第二章 指令系統(tǒng) SBB OPRD1,OPRD2格式:SBB OPRD1,OPRD2操作:OPRD1=OPRD1-OPRD2-CF 用于多字節(jié)數(shù)相減。 66第二章 指令系統(tǒng) DEC:減指令格式:DEC OPRD執(zhí)行:OPRD OPRD-1 DEC CX; CX=CX-1 67第二章 指令系統(tǒng) NEG:取補指令 格式:NEG OPRD 對操作數(shù)OPRD取補 執(zhí)行:OPRD OPRD+1 例:NEG AL68第二章 指令系統(tǒng) CMP:比較指令格式:CMP PRD1,OPRD2完成兩個操作數(shù)相減 (OPRD1-OPRD2)結(jié)果反映在標志位
24、上并不回送結(jié)果。目的操作數(shù)可以是寄存器,或內(nèi)存;源操作數(shù)可以是立即數(shù),寄存器或內(nèi)存。該指令主要用于比較兩者之間的關(guān)系。 69第二章 指令系統(tǒng) CMP AX,BX 若AX與BX同符號:(AX-BX)則AX-BX不會溢出,用SF判其符號就可判斷兩數(shù)大小。即 SF=0,AXBX,SF=1,AXBX 負-正:負 SF=1 , AXBXAXBX 負-正 正 則SF=0 AXBX 若無溢出(OF=0) SF=1;AXBX 若有溢出(OF=1) SF=0;AXBX 71第二章 指令系統(tǒng)相異符號相減有兩種可能 A- B 無溢出:SF=1:AB 正-負 有溢出:SF=0:AB 正-負 有溢出:SF=1:AB 7
25、2第二章 指令系統(tǒng) MUL:無符號數(shù)乘法格式:MUL OPRD執(zhí)行:字節(jié)操作 AX AL*(OPRD) 字操作 DX,AX AX*(OPRD)OPRD可以是寄存器或內(nèi)存單元 例 MOV AL,F(xiàn)IRST FIRST MUL SECOND SELIND MOV THIRD,AX THIRD 73第二章 指令系統(tǒng) IMUL:帶符號數(shù)乘法 同MUL上,但是帶符號數(shù) MUL:255*255=65025(1111,1111b)*(1111,1111b) IMUL:(-1)*(-1)=1 例:AL= 0B4H BL =11H AL = 0B4H =-76D IMUL BL -1292D BL = 11H
26、= 17D AL = 180D MUL BL 3060D BL = 17D 74第二章 指令系統(tǒng) DIV:無符號數(shù)除法 格式:DIV OPRD執(zhí)行:字節(jié)操作: AL AX /(OPRD) 的商 OPRD為8位 AH AX /(OPRD)的余數(shù)字操作: AX (DX,AX)/(OPRD)的商 DX (DX,AX)/(OPRD)的余數(shù)商、余數(shù)均為無符號數(shù);OPRD為寄存器或內(nèi)存單元。 75第二章 指令系統(tǒng) IDIV:帶符號除法 同上,商、余數(shù)等為有符號數(shù)。 76第二章 指令系統(tǒng) CBW 擴展存儲器AL中的字節(jié)符號, 把它送至AH中 AL 80H,則擴展后AH 0FFH目的:在兩個字節(jié)操作數(shù)相除時,
27、產(chǎn)生一個字的被除數(shù)。 77第二章 指令系統(tǒng) CWD:將AX的符號擴展到DX中 AX =8000H,則 DX FFFFH目的:在兩個字操作數(shù)相除時,產(chǎn)生一個字節(jié)的被除數(shù)。 78第二章 指令系統(tǒng)例:有一內(nèi)存BUFFER,前兩個字節(jié)是16位帶符號被除數(shù),三、四字節(jié)是16位帶符號除數(shù),再下兩個字節(jié)放商,再下兩個字節(jié)放余數(shù)。BUFFER 被除數(shù) 除數(shù) 余數(shù) 商 79第二章 指令系統(tǒng) LEA BX,BUIFFER; BUFFER的偏址 BX MOVAX,BX; 被除數(shù) AX CWD ;擴展為(DX,AX) IDIV 2BX; (AX) 商 (DX) 余數(shù) MOV 4BX, AX MOV6BX,DX 80第
28、二章 指令系統(tǒng) BCD碼的概念壓縮的BCD碼:四位一個數(shù),連續(xù)排列。非壓縮的BCD碼:ASCII碼的數(shù)字碼,低四位為BCD碼,高四位為0011無意義。 (一)壓縮的BCD碼十進制調(diào)整 DAA, DAS (二)非壓縮的BCD碼調(diào)整 AAA, AAS, AAM, AAD 81第二章 指令系統(tǒng) DAA 加法十進制調(diào)整指令作用:緊跟加法指令之后,校正作用若(AL&0FH)9,或AF=1,則AL AL+6, AF 1;若(AL&F0H)9,或CF=1,則AL L+6,AF 1。 原來16進制是滿16進位, 十進制為滿10進位, 所以到進行用16進制進行 10進制調(diào)整時為+6 * * * 9 + * *
29、*82第二章 指令系統(tǒng)例:ADD AL,BL 97+96 193 1001 0111+1001 0110 0010 1101 D 110 110 6 1001 0011 1CF=1 83第二章 指令系統(tǒng) DAS 減法的十進制 執(zhí)行:AL AL中的差調(diào)整到壓縮的BCD格式(低四位) 若(AL&OFH)9, 或AF=1,則AL AL-6(高四位) 若(AL&F0H)90H, 或CF=1,則AL AL-60H 84第二章 指令系統(tǒng) AAA:加法的ASCII調(diào)整(AL) AL調(diào)整(AH) (AH)+調(diào)整進位值 執(zhí)行1)若AL低四位在09之間,AF=0 執(zhí)行(3)2)若AL低四位在0FH之間,AF=1,
30、 則AL 寄存器加6,AH寄存器加1,AF加1。3)清除AL高四位4)AF位的結(jié)果送CF位。 85第二章 指令系統(tǒng) AAS:減法的ASCII調(diào)整AL 把AL中的差調(diào)整到非壓縮的BCD格式AH AH - 調(diào)整產(chǎn)生的借位值 86第二章 指令系統(tǒng) AAM:乘法的ASCII調(diào)整 校正作用:AH AL被OA除的商 AL AL被OA除的除數(shù) MUL AL,BL AAM (AL)=07H,(BL)=09H 執(zhí)行MUL:(AL)=3FH=63 執(zhí)行AAM:(AH)=06H,(AL)=03H 前面都是對運算結(jié)果進行十進制調(diào)整。 6 AH10 63 60 3 AL87第二章 指令系統(tǒng) AAD:除法的ASCII調(diào)整
31、:AX存放二位非壓縮BCD數(shù),即AH為十位數(shù),AL為個位數(shù)。 AL 10*(AH)+(AL) AH 0 作用: 相除之前將AX中的被除數(shù)用AAD調(diào)整為二進制數(shù)。并存放于AL中。 88第二章 指令系統(tǒng)邏輯運算指令A(yù)ND,OR,NOT,XOR,TEST這幾條指令:NOT不允許使用立即數(shù),其余 指令的OPRD2為立即數(shù) 至少有一個操作數(shù)存放在Reg中, 另一個則可為任意尋址方式。 移位指令SHL,SAL,SHR,SAR,ROL,ROR,RCL,RCR 89第二章 指令系統(tǒng) AND:與 AND OPTD1,OPRD2執(zhí)行:OPRD1 OPRD1 OPRD2 90第二章 指令系統(tǒng) OR:或 OR OPR
32、D1,OPRD2執(zhí)行:OPRD1 OPRD1 v OPRD2 91第二章 指令系統(tǒng) NOT:非 NOT OPRD 執(zhí)行:OPRD OPRD 92第二章 指令系統(tǒng) XOR:異或指令 XOR OPRD1,OPRD2執(zhí)行:OPRD1 OPRD1 OPRD2 93第二章 指令系統(tǒng) TEST:測試指令 TEST OPRD1,OPRD2 執(zhí)行:OPRD1 OPRD2 操作數(shù)相與,不保留結(jié)果,只影響標志位。94第二章 指令系統(tǒng) SHL:邏輯左移指令 格式:SHL OPRD,m OPRD為除立即數(shù)外的任何尋址方式,移位次數(shù)由m定,m為1或CL。m為1時只移一位,大于1時,移位次數(shù)應(yīng)置于CL中。 例 95第二章
33、 指令系統(tǒng) SHL AX,1 或 SHL AX,CL CF 7 0 0 96第二章 指令系統(tǒng) SAL:算術(shù)左移指令 同SHL。在移位次數(shù)為1時,移位后,bit7與CF不同,則表明溢出,故OF=1,否則OF=0。該指令用于有符號乘法。 CF 7 0 97第二章 指令系統(tǒng) SHR:邏輯右移 格式:SHR OPRD,m 7 0 CF0 98第二章 指令系統(tǒng) SAR:算術(shù)右移 7 0 CF該指令用于有符號除法 99第二章 指令系統(tǒng) ROL:循環(huán)左移指令 格式:ROL OPRD,m CF 7 0CF 15 08位16位100第二章 指令系統(tǒng) ROR:循環(huán)右移指令 7 0 CF101第二章 指令系統(tǒng)RCL
34、:帶進位循環(huán)左移指令 CF 7 0102第二章 指令系統(tǒng) RCR:帶進位循環(huán)右移指令 7 0 CF103第二章 指令系統(tǒng) 串處理指令MOVS;CMPS;SCAS;LODS;STOS與上述指令配合使用的前綴有: REP;REPE/REPZ;REPNE/REPNZ 1、與REP配合使用的MOVS,STOS, LODS指令 2、與REPE/REPZ和REPNE/REPNZ聯(lián)合 工作的CMPS和SCAS指令 104 REP:重復(fù)串操作到(CX)=0為止執(zhí)行步驟: CX=0 ? CX=CX-1執(zhí)行串處理指令MOVS,STOS, LODS退出REP Y N105第二章 指令系統(tǒng) MOVS 串傳送指令 格式
35、 MOVS OPRD1,OPRD2 應(yīng)標示字或字節(jié)可以簡化為 MOVSB (字節(jié)傳送) MOVSW (字傳送)標準格式MOVS ES:BYTE PTRDI,DS:SI。 106第二章 指令系統(tǒng)MOVS執(zhí)行操作步驟: (DI) (SI) DF=0 ?(SI)=(SI)-1/2(DI)=(DI)-1/2(SI)=(SI)+1/2(DI)=(DI)+1/2 Y N DF決定了串傳送的方向,可有以下二條指令確定 CLD:使DF=0 STD:使DF=1 107第二章 指令系統(tǒng) 例 MOV SI,OFFSET SOURSE MOV DI,OFFSET DEST MOV CX,100 CLRREP MOVS
36、B 在此處源串在數(shù)據(jù)段中(也允許段超越),但目的串必須在附加段中。 108第二章 指令系統(tǒng) STOS 存串指令 格式:STOS OPRD (目的) STOSB (字節(jié)) STOSW (字) 執(zhí)行:(DI) AL, DI DI1(DI) AX, DI DI2 將AL或AX的內(nèi)容存入(DI)指定的 附加段單元中。 109第二章 指令系統(tǒng) 例MOV DI,0500HMOV AL,20HMOV CX,5CLDREP STOSB 執(zhí)行情況110第二章 指令系統(tǒng)CX=0 CX -1 CX(DI) AL DI +1 DIDF=0N Y 退出 YN DI -1 DI111第二章 指令系統(tǒng) LODS 取串指令:
37、 格式:LODS OPRD LODSB(字節(jié)) LODSW(字) 執(zhí)行: 字節(jié) AL (SI), SI SI1 字 AX (SI), SI SI 2 將SI指定的數(shù)據(jù)段單元內(nèi)容(允許段超越)送入AL,AX。一般不將該指令與REP聯(lián)用。 112第二章 指令系統(tǒng) REPE/REPZ 當相等/為零時重復(fù)串操作 CX/ZF =0 CX = CX -1重復(fù)串指令N Y 退出 113第二章 指令系統(tǒng) 與REP相比,實際上REPE和REPZ相同,只是除滿足CX=0結(jié)束外,還增加了一個ZF=0退出的條件。 114第二章 指令系統(tǒng) REPNE/REPNZ 當不相等/不為零時重 復(fù)串操作。退出條件與上面相反。 即
38、CX=0,ZF=1退出 115第二章 指令系統(tǒng) CMPS 串比較指令 格式: CMPS OPRD1,OPRD2CMPSB(字節(jié))CMPSW(字) 執(zhí)行:(SI) (DI) 字節(jié) SI=SI1,DI=DI1 字 SI=SI2,DI=DI2 SI 指向的數(shù)據(jù)段單元內(nèi)容與 DI 指 向的附加段相減,但不保留結(jié)果,只影響 條件碼。 116第二章 指令系統(tǒng) SCAS 串掃描指令 格式:SCAS OPRD SCASB SCASW執(zhí)行: AL - (DI) DI DI1 AX - (DI) DI DI2 指令把AL(AX)的內(nèi)容與(DI)指向的附 加段單元內(nèi)容相減,但不保留結(jié)果,只影響條件碼。 117第二章
39、 指令系統(tǒng)ITSIAITSSBSTING1 STRING2 例:MOV SI,OFFSET STING1 MOV DI,OFFSET STING2 MOV CX, 7 HCLDREPZ CMPSB JNZ UNMAT MOV AL,0 JMP OUTPUTUNMAT:MOV AL,0FFHOUTPUT :.118第二章 指令系統(tǒng) 控制轉(zhuǎn)移指令 5、中斷 4、子程序指令 3、循環(huán)指令 2、條件轉(zhuǎn)移 1、無條件轉(zhuǎn)移指令 119第二章 指令系統(tǒng) 無條件轉(zhuǎn)移指令 作用:轉(zhuǎn)移到指令的地址去執(zhí)行從該地址開始的指令。分段內(nèi)和段間轉(zhuǎn)移兩種。前者只須改變IP,而后者不僅要改變IP,還要改變CS。 3)段內(nèi)直接轉(zhuǎn)
40、移 1)段內(nèi)直接短轉(zhuǎn)移 2)段內(nèi)直接近轉(zhuǎn)移 5)段間間接轉(zhuǎn)移 4)段間直接轉(zhuǎn)移 120第二章 指令系統(tǒng) 段內(nèi)直接短轉(zhuǎn)移 格式: JMP SHORT OPRD 執(zhí)行:(IP) (IP)+8位偏移量 其中OPRD在匯編格式中可以直接使用符號地址,但機器執(zhí)行時是IP+8位偏移量來做的。由于可以前后跳轉(zhuǎn),所以允許在-128127字節(jié)范圍內(nèi)轉(zhuǎn)移。 121第二章 指令系統(tǒng)例:JMP SHORT HELL HELL:MOV AL,3 代碼段 JMP MOV E8 08 B0 08 0100H 0101H 010AH 010BH 0102H 122第二章 指令系統(tǒng) 段內(nèi)直接近轉(zhuǎn)移 格式:JMP NEAR PT
41、R OPR 執(zhí)行:IP IP+16位偏移量 OPR為地址符號123第二章 指令系統(tǒng) 段內(nèi)直接轉(zhuǎn)移 格式:JMP WORD PTR OPRD 執(zhí)行: IP (EA) 有效地址EA由OPRD的尋址方式確定,可以是除立即數(shù)以外的任何尋址方式。 JMP BX 執(zhí)行: IP BX 124第二章 指令系統(tǒng) 段間直接轉(zhuǎn)移 格式:TMP FAR PTR OPRD執(zhí)行:IP OPRD的段內(nèi)偏移地址 CS OPRD所在的段地址。 匯編格式中OPRD可使用地址符號。 JMP FAR PTR NEXT NEXT :INC CX125第二章 指令系統(tǒng) 段間間接轉(zhuǎn)移 格式:JMP DWORD PTR OPRD 執(zhí)行: I
42、P (EA) CS (EA+2)(EA)由OPRD的尋址方式?jīng)Q定,可以是除立即數(shù)及寄存器方式以外的所有尋址方式。例:JMP DWORD PTR ALPHASPDI 126第二章 指令系統(tǒng)1)根據(jù)單個條件標志的設(shè)置情況轉(zhuǎn) 移 4) 測試CX的值為0則轉(zhuǎn)移指令 3)用于有符號數(shù)的條件轉(zhuǎn)移指令:2)用于無符號數(shù)的條件轉(zhuǎn)移。 127第二章 指令系統(tǒng) 根據(jù)單個條件標志的設(shè)置情況轉(zhuǎn)移 lJZ(或JE) OPRD OPRD結(jié)果為0(或相等)則轉(zhuǎn)移 測試:ZF=1 l JC/JNC OPRD: 根據(jù)CF轉(zhuǎn)移,JC是當CF=1轉(zhuǎn)移, JNC是當CF=0轉(zhuǎn)移。 128第二章 指令系統(tǒng) lJE/JZ或JNE/JNZ
43、 OPRD: (相等轉(zhuǎn)移/等于0轉(zhuǎn)移) 一條指令的兩種助記符。 JE/JZ是當ZF=1時轉(zhuǎn)移。 JNE/JNZ當ZF=0時轉(zhuǎn)移。 lJS/JNS OPRD: JS是當SF=1,為負則轉(zhuǎn)移, JNS是當SF=0轉(zhuǎn)移。 129第二章 指令系統(tǒng) lJO/JNO OPRD: JO是當OF=1,溢出則轉(zhuǎn)移。 JNO是當OF=0,不溢出則轉(zhuǎn)移。 l JP/JPE或JNP/JPO OPRD: JP/JPE (偶轉(zhuǎn)移)當PF=1時轉(zhuǎn)移 JNP/JPO(奇轉(zhuǎn)移)當PF=0時轉(zhuǎn)移 其中OPRD是匯編指令中的地址符號。 例: CMP CX,DX JE LAB2 ;CX=DX轉(zhuǎn)至LAB2 JNC NEXT LAB2:
44、 MOV AX,0 130用于無符號數(shù)的條件轉(zhuǎn)移: lJA/JNBE OPRD: 是當CF=0,ZF=0時轉(zhuǎn)移。 用無符號數(shù)a,b比較時, ab時則轉(zhuǎn)移。 lJAE/JNB OPRD: 當CF=0或ZF=1時轉(zhuǎn)移 。無符號數(shù)a,b 比較, ab則轉(zhuǎn)移 lJBE/JNA OPRD: 當CF=1或ZF=1時轉(zhuǎn)移。無符號數(shù)a,b比較, ab則轉(zhuǎn)移 l JB/JNAE OPERD: 當CF=1,ZF=0時轉(zhuǎn)移,a b則轉(zhuǎn)移 131第二章 指令系統(tǒng) 用于有符號數(shù)的條件轉(zhuǎn)移指令: lJG/JNLE: 當SF與OF同號, 且ZF=0時轉(zhuǎn)移 有符號數(shù)a,b比較:ab則轉(zhuǎn)移 SF=0 AB(OF=0) SF=1
45、 AB SF=0 AB 132第二章 指令系統(tǒng) lJGE/JNL OPRD: 當SF與OF同號,且ZF=1時轉(zhuǎn)移 ab 轉(zhuǎn)移 lJL/JNGE OPRD: SF與OF異號,且ZF=0時轉(zhuǎn)移 ab 轉(zhuǎn)移 lJLE/JNG OPRD: SF與OF異號或ZF=1時轉(zhuǎn)移。 ab 轉(zhuǎn)移 133第二章 指令系統(tǒng) 測試CX的值為0則轉(zhuǎn)移指令 JCXZ OPRD CX=0 轉(zhuǎn)移 134第二章 指令系統(tǒng) 循環(huán)指令 lLOOP 循環(huán) 格式:LOOP OPRD 測試條件: CX0循環(huán) lLOOPZ/LOOPE OPRD: 為零/相等循環(huán) 測試:ZF=1且(CX)0循環(huán) l LOOPNZ/LOOPNE OPRD: 與上面相反。 135 三條指令執(zhí)行步驟 1) CX CX - 1 2)檢查是否滿足測試條件,如滿足依據(jù) OPRD改變IP值。一般OPRD為目標地址符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民用建筑工程室內(nèi)環(huán)境污染治理合作協(xié)議合同
- 跨國軟件許可合作合同:知識產(chǎn)權(quán)保護
- 度建筑幕墻工程分包合同
- 承包香梨園合同范本
- 物業(yè)拎包入住合同范本
- ktv接手轉(zhuǎn)讓合同范本
- 辦公場地管理服務(wù)合同范例
- 出口股合同范例
- 公園草坪綠化養(yǎng)護合同范例
- 下鄉(xiāng)演出合同范例
- 豪邁CutRite V9板材優(yōu)化軟件學習教材
- GB 2715-2016食品安全國家標準糧食
- 深圳市失業(yè)人員停止領(lǐng)取失業(yè)保險待遇申請表樣表
- 建設(shè)工程合同糾紛-審判實務(wù)分析課件
- 門診慢特病病種待遇認定申請表
- 滅火器檢查卡
- 《IP地址和域名》-高中信息技術(shù)人教-中圖版(2019)必修2
- 南站二期標識設(shè)計變更003精神堡壘施工圖
- JIS G4305-2021 冷軋不銹鋼板材、薄板材和帶材
- 自我探索價值觀講課稿
- 園林工程計量與計價PPT全套課件
評論
0/150
提交評論