微機(jī)原理和接口技術(shù)-ppt課件_第1頁(yè)
微機(jī)原理和接口技術(shù)-ppt課件_第2頁(yè)
微機(jī)原理和接口技術(shù)-ppt課件_第3頁(yè)
微機(jī)原理和接口技術(shù)-ppt課件_第4頁(yè)
微機(jī)原理和接口技術(shù)-ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章第三章 8086尋址方式和指令系統(tǒng)尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)微機(jī)原理與接口技術(shù) 2019.10Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo2本章目錄本章目錄3.1 8086的尋址方式的尋址方式3.2 機(jī)器指令格式及編碼方式機(jī)器指令格式及編碼方式3.3 8086的指令系統(tǒng)的指令系統(tǒng)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo31.分類分類 (1)數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令普通數(shù)據(jù)傳送指令普通數(shù)據(jù)傳送指令 堆棧操作指令堆棧操作指令標(biāo)志傳送命令標(biāo)志傳送命令I(lǐng)/O指令指令地址傳送指令地址傳送指令(2)算術(shù)

2、運(yùn)算指令算術(shù)運(yùn)算指令(3)位操作指令位操作指令(4)串操作指令串操作指令(5)程序控制指令程序控制指令 轉(zhuǎn)移指令、循環(huán)指令轉(zhuǎn)移指令、循環(huán)指令 、子程序調(diào)用、中斷調(diào)用、子程序調(diào)用、中斷調(diào)用 (6)處置機(jī)控制指令處置機(jī)控制指令標(biāo)志的操作指令標(biāo)志的操作指令怎樣記住常用的指令?怎樣記住常用的指令? 格式、功能、特殊規(guī)格式、功能、特殊規(guī)定,對(duì)標(biāo)志存放器的影定,對(duì)標(biāo)志存放器的影響響! !3.3 8086的指令系統(tǒng)的指令系統(tǒng)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo41. 數(shù)據(jù)傳送類數(shù)據(jù)傳送類普通數(shù)據(jù)傳送指令:普通數(shù)據(jù)傳送指令:MOV、XCHG、XLAT堆棧操作指

3、令:堆棧操作指令: PUSH、POP、PUSHF、POPF標(biāo)志傳送命令:標(biāo)志傳送命令: SAHF、LAHF地址傳送指令:地址傳送指令: LEA、LDS、LES2. 算術(shù)運(yùn)算類算術(shù)運(yùn)算類加法指令:加法指令:ADD、ADC、INC減法指令:減法指令:DEC、NEG、SUB、SBB、CMP乘除指令:乘除指令:MUL、IMUL、CBW、CWD、DIV、IDIV3. 位操作指令位操作指令 邏輯運(yùn)算指令:邏輯運(yùn)算指令:NOT、AND、TEST、OR、XOR移位指令:移位指令:SHL/SAL、SHR、SAR、ROL、ROR、RCL、RCR3.3 8086的指令系統(tǒng)的指令系統(tǒng)Chapter 3 8086尋址方

4、式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo53. 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令1) 加運(yùn)算指令加運(yùn)算指令 INC、ADD、ADC2) 減運(yùn)算指令減運(yùn)算指令 SUB、DEC、SBB、NEG、CMP3) 乘運(yùn)算指令乘運(yùn)算指令 IMUL、MUL 4) 符號(hào)擴(kuò)展指令符號(hào)擴(kuò)展指令 CBW、CWD、CWDE、CDQ 5) 無(wú)符號(hào)乘指令無(wú)符號(hào)乘指令 MUL 6) 除運(yùn)算指令除運(yùn)算指令 IDIV、DIV 他們分別執(zhí)行字或字節(jié)的加法和減法運(yùn)算,除他們分別執(zhí)行字或字節(jié)的加法和減法運(yùn)算,除INC和和DEC不影響不影響CF標(biāo)志外,其他按定義影響標(biāo)志外,其他按定義影響全部形狀標(biāo)志位全部形狀標(biāo)志位算術(shù)運(yùn)算指令算術(shù)運(yùn)

5、算指令Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo6算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的區(qū)別:有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的區(qū)別:數(shù)的表示范圍不一樣數(shù)的表示范圍不一樣比較大小的規(guī)范不一樣比較大小的規(guī)范不一樣 例:對(duì)于例:對(duì)于8位位16進(jìn)制數(shù),比較進(jìn)制數(shù),比較80H和和0A8H的大的大小小.判別運(yùn)算結(jié)果能否正確的規(guī)范也不一樣判別運(yùn)算結(jié)果能否正確的規(guī)范也不一樣 例例: 對(duì)有符號(hào)數(shù)對(duì)有符號(hào)數(shù), 加、減法運(yùn)算結(jié)果只需加、減法運(yùn)算結(jié)果只需OF0時(shí)才是正確的;對(duì)于無(wú)符號(hào)數(shù),只需時(shí)才是正確的;對(duì)于無(wú)符號(hào)數(shù),只需CF0時(shí),時(shí),運(yùn)算結(jié)果才是正確的運(yùn)算結(jié)果才是正確的. 符號(hào)

6、擴(kuò)展不一樣,有符號(hào)數(shù)的補(bǔ)碼最高位向左符號(hào)擴(kuò)展不一樣,有符號(hào)數(shù)的補(bǔ)碼最高位向左延伸,得到的仍是該數(shù)的補(bǔ)碼。延伸,得到的仍是該數(shù)的補(bǔ)碼。Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo74. 位操作指令位操作指令邏輯運(yùn)算指令邏輯運(yùn)算指令(1)邏輯乘指令邏輯乘指令A(yù)ND(2)求反指令求反指令NOT(3) 測(cè)試指令測(cè)試指令TEST(4) 邏輯加指令邏輯加指令OR(5) 按位加指令按位加指令XOR(6)位操作指令的特點(diǎn)位操作指令的特點(diǎn)移位指令移位指令(1) 算術(shù)、邏輯移位指令算術(shù)、邏輯移位指令(2) 循環(huán)移位指令循環(huán)移位指令Chapter 3 8086尋址方式和指令

7、系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo8本身相或、相與結(jié)果不變;本身相或、相與結(jié)果不變; 本身按位加結(jié)果為本身按位加結(jié)果為0,“XOR AX, AX之后之后(AX) = 0;(2) 假設(shè)要將目的操作數(shù)中某些位清假設(shè)要將目的操作數(shù)中某些位清0,用,用AND,稱之為,稱之為屏蔽屏蔽(3) 假設(shè)要將目的操作數(shù)中某些位置假設(shè)要將目的操作數(shù)中某些位置1,用,用OR(4)用來(lái)測(cè)試目的操作數(shù)中某一位或某幾位能否為用來(lái)測(cè)試目的操作數(shù)中某一位或某幾位能否為0或或1,而結(jié)果不變,而結(jié)果不變,TEST,BT TEST與與CMP的區(qū)別:前者是測(cè)試一位或幾位,后者測(cè)的區(qū)別:前者是測(cè)試一位或幾位,后者測(cè)試整個(gè)字節(jié)字

8、雙字能否相等試整個(gè)字節(jié)字雙字能否相等(5)與數(shù)值表達(dá)式邏輯運(yùn)算的區(qū)別與數(shù)值表達(dá)式邏輯運(yùn)算的區(qū)別位操作指令的特點(diǎn)位操作指令的特點(diǎn)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo94.2 移位指令移位指令將操作數(shù)挪動(dòng)一位或多位,分成邏輯移位和算術(shù)將操作數(shù)挪動(dòng)一位或多位,分成邏輯移位和算術(shù)移位,分別具有左移或右移操作移位,分別具有左移或右移操作移位指令的第一個(gè)操作數(shù)是指定的被移位的操作移位指令的第一個(gè)操作數(shù)是指定的被移位的操作數(shù),可以是存放器或存儲(chǔ)單元;后一個(gè)操作數(shù)表示數(shù),可以是存放器或存儲(chǔ)單元;后一個(gè)操作數(shù)表示移位位數(shù):移位位數(shù):該操作數(shù)為該操作數(shù)為1,表示挪

9、動(dòng)一位,表示挪動(dòng)一位該操作數(shù)為該操作數(shù)為CL,CL存放器值表示移位位數(shù)存放器值表示移位位數(shù) 移位移位位數(shù)大于位數(shù)大于1只能只能CL表示表示按照移入的位設(shè)置進(jìn)位標(biāo)志按照移入的位設(shè)置進(jìn)位標(biāo)志CF,根據(jù)移位后的結(jié),根據(jù)移位后的結(jié)果影響果影響SF、ZF、PFSHL, SHR, SAL, SARChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo10 循環(huán)移位指令循環(huán)移位指令循環(huán)移位指令類似移位指令,但要將從一端移出循環(huán)移位指令類似移位指令,但要將從一端移出的位前往到另一端構(gòu)成循環(huán)。分為的位前往到另一端構(gòu)成循環(huán)。分為:ROL reg/mem,1/CL;不帶進(jìn)位循環(huán)左移不

10、帶進(jìn)位循環(huán)左移ROR reg/mem,1/CL;不帶進(jìn)位循環(huán)右移不帶進(jìn)位循環(huán)右移RCL reg/mem,1/CL;帶進(jìn)位循環(huán)左移帶進(jìn)位循環(huán)左移RCR reg/mem,1/CL;帶進(jìn)位循環(huán)右移帶進(jìn)位循環(huán)右移循環(huán)移位指令的操作數(shù)方式與移位指令一樣,按循環(huán)移位指令的操作數(shù)方式與移位指令一樣,按指令功能設(shè)置進(jìn)位標(biāo)志指令功能設(shè)置進(jìn)位標(biāo)志CF,但不影響,但不影響SF、ZF、PF、AF標(biāo)志標(biāo)志Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo11移位例題移位例題問(wèn)題:請(qǐng)閱讀以下程序段,闡明程序功能問(wèn)題:請(qǐng)閱讀以下程序段,闡明程序功能 MOV CX,4NEXT:SAL AX

11、,1 RCL DX,1 DEC CX JNE NEXTChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo125. 輸入輸入/輸出指令輸出指令從信息流向看,在從信息流向看,在8086中,中,輸入是指將外部設(shè)備數(shù)據(jù)存放器中的數(shù)據(jù)送至累加器輸入是指將外部設(shè)備數(shù)據(jù)存放器中的數(shù)據(jù)送至累加器AL/AX中,由中,由IN指令完成。指令完成。輸出是指將輸出是指將AL/AX中的數(shù)據(jù)送至外設(shè)數(shù)據(jù)存放器的過(guò)程,中的數(shù)據(jù)送至外設(shè)數(shù)據(jù)存放器的過(guò)程,由由OUT指令完成。指令完成。 數(shù)據(jù)存放器數(shù)據(jù)存放器 打印機(jī)打印機(jī)AL/AX 數(shù)據(jù)存放器數(shù)據(jù)存放器鍵鍵 盤盤AL/AXOUTBUFOUTBU

12、FINBUFChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo135. 輸入輸入/輸出指令輸出指令輸入指令輸入指令格式:格式: IN AL,設(shè)備存放器地址,設(shè)備存放器地址 或或 IN AL,DX IN AX,設(shè)備存放器地址,設(shè)備存放器地址 或或 IN AX,DX 其中,其中,DX內(nèi)容為設(shè)備存放器地址。內(nèi)容為設(shè)備存放器地址。功能:將設(shè)備存放器的內(nèi)容功能:將設(shè)備存放器的內(nèi)容AL/AX,或,或(DX)AL/AX闡明:闡明:在第一種格式中,設(shè)備存放器地址不得大于在第一種格式中,設(shè)備存放器地址不得大于255,否那么,否那么需用第二種格式。需用第二種格式。主存空間的任何

13、尋址方式在此均不適用。主存空間的任何尋址方式在此均不適用。例:例:MOV DX,379H IN AL, DX ;將打印機(jī)形狀端口的內(nèi)容;將打印機(jī)形狀端口的內(nèi)容AL。Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo145. 輸入輸入/輸出指令輸出指令輸出指令輸出指令格式:格式: OUT 設(shè)備存放器地址設(shè)備存放器地址 ,AL或或 OUT DX,AL OUT 設(shè)備存放器地址設(shè)備存放器地址 ,AX或或 OUT DX,AX 其中,其中,DX內(nèi)容為設(shè)備存放器地址。內(nèi)容為設(shè)備存放器地址。功能:功能: AL/AX 設(shè)備存放器,或設(shè)備存放器,或AL/AX DX例:例: MO

14、V AL,A MOV DX,378H OUT DX,AL;將字符;將字符A送打印機(jī)數(shù)據(jù)存放器送打印機(jī)數(shù)據(jù)存放器Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo15課堂練習(xí):執(zhí)行以下指令段后課堂練習(xí):執(zhí)行以下指令段后(BX)=?, (CX)=? DATA SEGMENT BUF DW -5, 10, -9, 7, 2 M DW 2, 3DATA ENDS LEA BX, BUF ADD BX, M+2 MOV CX, BX Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo166. 標(biāo)志操作指令標(biāo)志操作指令1) 標(biāo)志位操作

15、指令標(biāo)志位操作指令CLC;復(fù)位進(jìn)位標(biāo)志:;復(fù)位進(jìn)位標(biāo)志:CF0STC ;置位進(jìn)位標(biāo)志:;置位進(jìn)位標(biāo)志:CF1CMC;求反進(jìn)位標(biāo)志:;求反進(jìn)位標(biāo)志:CFCFCLD;復(fù)位方向標(biāo)志:;復(fù)位方向標(biāo)志:DF0STD ;置位方向標(biāo)志:;置位方向標(biāo)志:DF1CLI;復(fù)位中斷標(biāo)志:;復(fù)位中斷標(biāo)志:IF0STI;置位中斷標(biāo)志:;置位中斷標(biāo)志:IF12) 標(biāo)志存放器低字節(jié)與標(biāo)志存放器低字節(jié)與AH的傳送指令的傳送指令LAHF,SAHF3) 標(biāo)志存放器出入堆棧指令標(biāo)志存放器出入堆棧指令PUSHF,POPFChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo177. 串操作指令串操作指

16、令串:順序放在內(nèi)存中的一組一樣類型的數(shù)據(jù)。串:順序放在內(nèi)存中的一組一樣類型的數(shù)據(jù)。串操作:對(duì)串中的元素進(jìn)展一樣的操作。串操作:對(duì)串中的元素進(jìn)展一樣的操作。串操作的尋址方式:串操作的尋址方式: 源操作數(shù)指針源操作數(shù)指針DS:SI(DSDS:SI(DS可超越可超越) ) 目的操作數(shù)指針目的操作數(shù)指針ES:DIES:DI每次串操作后:每次串操作后:串操作指令自動(dòng)修正串操作指令自動(dòng)修正SISI和和DIDI字節(jié)字節(jié)1 1,字,字2 2。DFDF標(biāo)標(biāo)志決議志決議??赏瓿蓛蓚€(gè)存儲(chǔ)單元之間的傳送和比較操作也僅是可完成兩個(gè)存儲(chǔ)單元之間的傳送和比較操作也僅是串指令可以串指令可以Chapter 3 8086尋址方式

17、和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo18串指令運(yùn)用的普通方法串指令運(yùn)用的普通方法設(shè)置源串地址設(shè)置源串地址設(shè)置目的串地址設(shè)置目的串地址設(shè)置串長(zhǎng)度設(shè)置串長(zhǎng)度設(shè)置操作方向設(shè)置操作方向DF串指令串指令MOV SI, 源串首地址源串首地址或或LEA SI, 源串源串MOV DI, 目的串首地址目的串首地址或或LEA DI, 目的串目的串MOV CX, 串長(zhǎng)度串長(zhǎng)度CLD或或STDChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo19 反復(fù)前綴反復(fù)前綴有的串操作指令前面可加上反復(fù)前綴有的串操作指令前面可加上反復(fù)前綴REP。當(dāng)。當(dāng)運(yùn)用運(yùn)用REP前綴時(shí),該指令

18、反復(fù)執(zhí)行,反復(fù)執(zhí)行次前綴時(shí),該指令反復(fù)執(zhí)行,反復(fù)執(zhí)行次數(shù)由數(shù)由CX決議帶有決議帶有REP前綴的串操作指令每執(zhí)行前綴的串操作指令每執(zhí)行一次,一次,CX自動(dòng)減自動(dòng)減1。反復(fù)前綴包括:反復(fù)前綴包括:REP CX0 時(shí)反復(fù)執(zhí)行時(shí)反復(fù)執(zhí)行REPE/REPZ CX0ZF=1時(shí)反復(fù)執(zhí)行時(shí)反復(fù)執(zhí)行REPNE/REPNZ CX0ZF=0時(shí)反復(fù)執(zhí)行時(shí)反復(fù)執(zhí)行Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo20字符串操作指令字符串操作指令串傳送指令串傳送指令 MOVS串比較指令串比較指令 CMPS串搜索指令串搜索指令 SCAS取字節(jié)取字節(jié)/字串指令字串指令 LODS存儲(chǔ)字節(jié)存儲(chǔ)

19、字節(jié)/字串指令字串指令 STOSChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo21(1)(1)串傳送指令串傳送指令 MOVS MOVS格式格式:MOVS OPD,OPS 或或功能功能:(1) (DS:SI) ES:DI (2) 修正串指針,使之指向下一元素。修正方式為:修正串指針,使之指向下一元素。修正方式為: .當(dāng)當(dāng)DF0時(shí),時(shí),(SI)增量增量1(字節(jié)操作字節(jié)操作)或或2(字操作字操作) .當(dāng)當(dāng)DF1時(shí),時(shí),(SI)減量減量1(字節(jié)操作字節(jié)操作)或或2(字操作字操作)闡明闡明: (1) 該指令可帶的反復(fù)前綴為:該指令可帶的反復(fù)前綴為:REP 即當(dāng)即當(dāng)

20、(CX)0時(shí)延續(xù)傳送,直至?xí)r延續(xù)傳送,直至(CX)=0。 (2) 源串應(yīng)在當(dāng)前數(shù)據(jù)段,指針為源串應(yīng)在當(dāng)前數(shù)據(jù)段,指針為SI;目的串應(yīng)在;目的串應(yīng)在 當(dāng)前附加數(shù)據(jù)段指針為當(dāng)前附加數(shù)據(jù)段指針為DI。MOVSB 字節(jié)串傳送字節(jié)串傳送MOVSW 字串傳送字串傳送Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo22串傳送指令運(yùn)用舉例串傳送指令運(yùn)用舉例用串傳送指令實(shí)現(xiàn)用串傳送指令實(shí)現(xiàn)200個(gè)字節(jié)的數(shù)據(jù)傳送:個(gè)字節(jié)的數(shù)據(jù)傳送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLTChapter 3 8086尋址方式和指

21、令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo23例:將以例:將以STR1為首址的字節(jié)存儲(chǔ)區(qū)中存放的字符串傳送到以為首址的字節(jié)存儲(chǔ)區(qū)中存放的字符串傳送到以 STR2為首址的字節(jié)存儲(chǔ)區(qū)中。為首址的字節(jié)存儲(chǔ)區(qū)中。 .386 DATA SEGMENT USE16 STR1 DB ABCDEFGHIJKLM ;輸出緩沖區(qū);輸出緩沖區(qū)BUF1 COUNT EQU $-BUF1 ;BUF1中的字符個(gè)數(shù)中的字符個(gè)數(shù) STR2 DB COUNT DUP0 ;輸入緩沖區(qū);輸入緩沖區(qū)BUF2 DATA ENDS STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS

22、CODE SEGMENT USE16 ASSSUME DS:DATA,ES:DATA,CS:CODE,SS:SATCK 串傳送指令串傳送指令 MOVS MOVSChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo24START:MOV AX,DATA MOV DS,AX ;當(dāng)前數(shù)據(jù)段和當(dāng)前附加數(shù)據(jù)段重合;當(dāng)前數(shù)據(jù)段和當(dāng)前附加數(shù)據(jù)段重合 MOV ES,AX LEA SI,STR1 ;源串首址送;源串首址送SI LEA DI, STR2 ;目的串首址送;目的串首址送DI MOV CX,COUNT ;串長(zhǎng)度送;串長(zhǎng)度送CX CLD ;將;將DF清清0 REP MOV

23、SB ;反復(fù)傳送直至;反復(fù)傳送直至CX=0 MOV AH,4CH INT 21H CODE ENDS END START16CX數(shù)據(jù)段數(shù)據(jù)段BUF1BUF2ABCDE FGH I J K LMABCDE FGH I J K LM“ REP MOVSB語(yǔ)句替代了以下程語(yǔ)句替代了以下程序段序段:P: MOV AL, SI MOV DI, AL INC SI INC DI LOOP P 由于每個(gè)匯編源程序的開(kāi)場(chǎng)時(shí)由于每個(gè)匯編源程序的開(kāi)場(chǎng)時(shí), DF=0為默許形狀為默許形狀,一次不用專門運(yùn)用一次不用專門運(yùn)用CLD指指令。令。 反向操作的源程序反向操作的源程序:STD LEA SI,BUF1+COUNT-

24、1LEA DI,BUF2+COUNT-1MOV CX,COUNT REP MOVSBREP MOVSB語(yǔ)句替代了以下程序段語(yǔ)句替代了以下程序段P: MOV AL, SI MOV DI,AL DEC SI DEC DI LOOP P 由于由于DF=0為默許形狀為默許形狀,故須運(yùn)用故須運(yùn)用STD指令設(shè)置指令設(shè)置DF=1,才干反向操作才干反向操作. 1.串傳送指令串傳送指令 MOVSChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo25(2) 串比較指令串比較指令 CMPS格式格式:CMPS OPD,OPS 或或功能:功能: (DS:SI)(ES:DI),即將,即

25、將SI所指的源串中的所指的源串中的 一個(gè)字節(jié)一個(gè)字節(jié)(或或字字)中的數(shù)據(jù)與中的數(shù)據(jù)與DI所指的目的串中的一個(gè)字節(jié)所指的目的串中的一個(gè)字節(jié) (或字或字)中的數(shù)中的數(shù)據(jù)相減,并根據(jù)相減的結(jié)果設(shè)置標(biāo)志位,結(jié)果并不保管。據(jù)相減,并根據(jù)相減的結(jié)果設(shè)置標(biāo)志位,結(jié)果并不保管。 修正串指針,使之指向串中的下一個(gè)元素。修正方式為修正串指針,使之指向串中的下一個(gè)元素。修正方式為: i. 當(dāng)當(dāng)DF0時(shí),時(shí),(SI)和和(DI)增量增量1(字節(jié)操作字節(jié)操作)或或2(字操作字操作) 。 ii. 當(dāng)當(dāng)DF1時(shí),時(shí),(SI)和和(DI)減量減量1(字節(jié)操作字節(jié)操作)或或2(字操作字操作) 。 CMPSB 字節(jié)串比較字節(jié)串比

26、較 CMPSW 字串比較字串比較。Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo26闡明闡明: 源串放在當(dāng)前數(shù)據(jù)段中源串放在當(dāng)前數(shù)據(jù)段中,指針為指針為SI; 目的串放在當(dāng)前附加數(shù)據(jù)段中目的串放在當(dāng)前附加數(shù)據(jù)段中,指針為指針為DI; 該指令可帶的反復(fù)前綴為該指令可帶的反復(fù)前綴為: a. REPE/REPZ 當(dāng)當(dāng)(CX)0時(shí)時(shí),如兩串對(duì)應(yīng)字符如兩串對(duì)應(yīng)字符 相等繼續(xù)比較相等繼續(xù)比較,不相等跳出循環(huán)不相等跳出循環(huán); b. REPNE/REPNZ 當(dāng)當(dāng)(CX)0時(shí)時(shí),如兩串對(duì)應(yīng)字符如兩串對(duì)應(yīng)字符 不相等繼續(xù)比較不相等繼續(xù)比較,相等跳出循環(huán)相等跳出循環(huán);(2) 串

27、比較指令串比較指令 CMPSChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo27(3) 串搜索指令串搜索指令 SCAS格式:格式: SCAS OPD 或或 功能功能: 字節(jié)操作:字節(jié)操作:(AL)-(ES:DI) 字操作:字操作: (AX)-(ES:DI) 修正串指針使之指向下一元素修正串指針使之指向下一元素.修正方式為修正方式為: i.當(dāng)當(dāng)DF0時(shí),時(shí),(DI)增量增量1(字節(jié)操作字節(jié)操作)或或2(字操作字操作) 。 ii.當(dāng)當(dāng)DF1時(shí),時(shí),(DI)減量減量1(字節(jié)操作字節(jié)操作)或或2(字操作字操作) 。 修正循環(huán)變量修正循環(huán)變量(CX) -1 CX(4

28、) 該指令可帶的反復(fù)指令該指令可帶的反復(fù)指令: REPZ/REPE , REPNZ/REPNESCASB 字節(jié)串搜索字節(jié)串搜索 SCASW 字串搜索字串搜索 Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo28例:在例:在ES段的偏移段的偏移1000H開(kāi)場(chǎng)處存有開(kāi)場(chǎng)處存有10個(gè)個(gè)ASCII碼。搜索碼。搜索E,假設(shè)找到那么記下搜索次數(shù)及存,假設(shè)找到那么記下搜索次數(shù)及存放地址,并在屏幕上顯示放地址,并在屏幕上顯示Y;假設(shè)未找到那么;假設(shè)未找到那么顯示顯示N。(見(jiàn)右圖見(jiàn)右圖)在屏幕上顯示一個(gè)字符的在屏幕上顯示一個(gè)字符的指令段如下:指令段如下: MOV DL, M

29、OV AH,2 INT 21H 實(shí)現(xiàn)標(biāo)題要求的程序段見(jiàn)下頁(yè):實(shí)現(xiàn)標(biāo)題要求的程序段見(jiàn)下頁(yè):1000H414243444546ABCDF. . .ES段段EChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo29 MOV DI, 1000H ;(DI)串偏移地址串偏移地址 MOV CX, 0AH ;(CX)串長(zhǎng)度串長(zhǎng)度 MOV AL, E ;搜索關(guān)鍵字;搜索關(guān)鍵字=E CLD ;從低地址到高地址進(jìn)展搜索;從低地址到高地址進(jìn)展搜索 REPNZ SCASB ;假設(shè)未找到;假設(shè)未找到, 繼續(xù)搜索繼續(xù)搜索 JZ FOUND ;找到;找到, 轉(zhuǎn)至轉(zhuǎn)至FOUND MOV DL

30、, N ;串中無(wú);串中無(wú)E,(DL)N JMP DONE ;轉(zhuǎn)至;轉(zhuǎn)至DONEFOUND:DEC DI ;指針回退;指針回退 MOV ADDR, DI ;ADDRE的地址的地址 SUB DI, 1000H INC NUM ;NUM搜索次數(shù)搜索次數(shù) MOV DL, Y ;(DL)YDONE: MOV AH, 2 INT 21H ;顯示字符;顯示字符 HLT Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo30執(zhí)行的操作為:執(zhí)行的操作為: 對(duì)字節(jié):對(duì)字節(jié):(AL)(DS):(SI) SI1 對(duì)字:對(duì)字:(AX)(DS):(SI+1)(SI) SI2 串裝入指令

31、通常不加反復(fù)前綴。串裝入指令通常不加反復(fù)前綴。LODSB等價(jià)于等價(jià)于: LODSW等價(jià)于等價(jià)于: MOV AL,SI MOV AX,SI INC SI INC SI INC SI (4)串裝入指令串裝入指令LODSB / LODSWChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo31例例: 下面閱讀一個(gè)運(yùn)用了下面閱讀一個(gè)運(yùn)用了LODSD的程序段的程序段: .386 DATA SEGMENT USE16BUF DB ABCDEFGHIJKLCOUNT EQU $-COUNTSTART: MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,

32、BUFMOV CX,COUNT/4LODSD ;執(zhí)行后,;執(zhí)行后,(EAX)44434241H LODSChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo32指令的操作為:指令的操作為: 對(duì)字節(jié):對(duì)字節(jié):(ES):(DI)(AL) DI1 對(duì)字:對(duì)字:(ES):(DI+1)(DI)(AX) DI2本指令用于把一塊存儲(chǔ)區(qū)域填充成某一初始本指令用于把一塊存儲(chǔ)區(qū)域填充成某一初始值值(即對(duì)存儲(chǔ)區(qū)進(jìn)展初始化即對(duì)存儲(chǔ)區(qū)進(jìn)展初始化)。存儲(chǔ)區(qū)域的首地址要預(yù)先設(shè)置到存儲(chǔ)區(qū)域的首地址要預(yù)先設(shè)置到ES:DI中。中。要存儲(chǔ)到串中的數(shù)據(jù)要預(yù)先存到要存儲(chǔ)到串中的數(shù)據(jù)要預(yù)先存到AL(AX

33、)中。中。(5)串存儲(chǔ)指令串存儲(chǔ)指令STOSB / STOSWChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo33例:把從例:把從A000H開(kāi)場(chǎng)的開(kāi)場(chǎng)的2KB內(nèi)存單元清零。內(nèi)存單元清零。程序段如下:程序段如下: MOV DI,0A000H MOV AX,0 MOV CX,1024 CLD REP STOSW Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo34例:把例:把1000H開(kāi)場(chǎng)的開(kāi)場(chǎng)的100個(gè)存儲(chǔ)單元填入個(gè)存儲(chǔ)單元填入 ASCII碼碼2AH(*)。程序段如下:程序段如下: MOV DI, 1000H ; 首地址

34、首地址MOV AL, 2AH ; * MOV CX, 100 ; 反復(fù)執(zhí)行反復(fù)執(zhí)行100次次CLD ; 增量修正增量修正DI REP STOSBChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo35串操作指令總結(jié)串操作指令總結(jié) 源串指針源串指針:DS: SI/ESI 即源串在當(dāng)前數(shù)據(jù)段即源串在當(dāng)前數(shù)據(jù)段 目的串的指針目的串的指針:ES: DI/EDI 即目的串在當(dāng)前附加數(shù)據(jù)段即目的串在當(dāng)前附加數(shù)據(jù)段 反復(fù)計(jì)數(shù)器反復(fù)計(jì)數(shù)器:CX/ECX 中間存放器中間存放器:AX/EL/EAX 傳送傳送/比較方向比較方向:DF=0, SI/ESI, DI/EDI自動(dòng)增量自動(dòng)增

35、量(加加1/加加2/加加4).DF=1, SI/ESI, DI/EDI自動(dòng)減量自動(dòng)減量(減減1/減減2/減減4). 指令格式指令格式: 帶操作數(shù)帶操作數(shù): S 不帶操作數(shù)不帶操作數(shù): SD (雙字操作雙字操作) SW (字操作字操作) SB (字節(jié)操作字節(jié)操作)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo36 反復(fù)前綴反復(fù)前綴:REP 反復(fù)執(zhí)行反復(fù)執(zhí)行,直到直到(CS/ECS)=0; (主要是主要是MOVS指令運(yùn)用指令運(yùn)用)REPE/REPZZF=1 時(shí)反復(fù)執(zhí)行時(shí)反復(fù)執(zhí)行,直到直到(CS/ECS)=0; REPNE/REPNZ ZF=0 時(shí)反復(fù)執(zhí)行時(shí)反

36、復(fù)執(zhí)行,直到直到(CS/ECS)=0; 闡明闡明:循環(huán)次數(shù)循環(huán)次數(shù)(CX)能否為能否為0是在操作之前檢測(cè)的是在操作之前檢測(cè)的,因此因此,當(dāng)當(dāng)(CX)為為0時(shí)不會(huì)引起串操作時(shí)不會(huì)引起串操作.操作終止后操作終止后,SI,DI均指向下一待操作均指向下一待操作的的EA,方向由方向由DF確定確定.主要是主要是CMPS,SCASCMPS,SCAS指令運(yùn)用指令運(yùn)用任務(wù)流程任務(wù)流程串操作指令總結(jié)串操作指令總結(jié)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo37串操作指串操作指令總結(jié)令總結(jié)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo

37、38本章小結(jié)本章小結(jié)1. 牢牢掌握牢牢掌握8086的的6種尋址方式:種尋址方式:存放器尋址、立刻數(shù)尋址、存儲(chǔ)器尋址方式存放器尋址、立刻數(shù)尋址、存儲(chǔ)器尋址方式間址、變址、基址加變址、直接間址、變址、基址加變址、直接2.概念:機(jī)器指令、指令系統(tǒng)、系列計(jì)算機(jī)概念:機(jī)器指令、指令系統(tǒng)、系列計(jì)算機(jī)3.了解機(jī)器指令的格式了解機(jī)器指令的格式4.掌握指令系統(tǒng)的設(shè)計(jì)與編碼的原理掌握指令系統(tǒng)的設(shè)計(jì)與編碼的原理5. 熟記熟記8086的指令系統(tǒng)的指令系統(tǒng)Chapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo39本章小結(jié)本章小結(jié)(1)數(shù)據(jù)傳送指令:數(shù)據(jù)傳送指令: 普通數(shù)據(jù)傳送指令:普通數(shù)

38、據(jù)傳送指令: MOV、XCHG、XLAT 堆棧操作指令:堆棧操作指令: PUSH、POP、PUSHF、POPF 標(biāo)志傳送命令:標(biāo)志傳送命令: SAHF、LAHF 地址傳送指令:地址傳送指令: LEA、LDS、LES(2)算術(shù)運(yùn)算指令:算術(shù)運(yùn)算指令: 加指令:加指令: ADD、INC減指令:減指令: DEC、SUB、CMP乘除法指令:乘除法指令:MUL、IMUL、CBW、CWD (3)位操作指令:位操作指令: 邏輯運(yùn)算指令:邏輯運(yùn)算指令:NOT、AND、TEST、OR、XOR移位指令:移位指令: SHL/SAL、SHR、SAR、ROL、ROR、RCL、RCR(4) 輸入輸入/輸出指令:輸出指令:

39、 IN、 OUT(5) 標(biāo)志操作指令標(biāo)志操作指令: CLC、STC、CMC(6) 串操作指令:串操作指令: MOVS、 CMPS、SCAS、 LODS、 STOSChapter 3 8086尋址方式和指令系統(tǒng)微機(jī)原理與接口技術(shù)2015.10 Zuo40練習(xí):練習(xí): 1.以下程序中的每條指令執(zhí)行完后以下程序中的每條指令執(zhí)行完后, AX存放器存放器及標(biāo)志存放器的及標(biāo)志存放器的CF、SF、ZF、OF的內(nèi)容各是什么?的內(nèi)容各是什么?MOV AX, 0DEC AXADD AX, 7FFFHADD AX, 2NOT AXSUB AX, 0FFFFHADD AX, 8000HSUB AX, 1AND AX, 58D1HSAL AX, 1SAR AX, 1NEG AX, ROR AX, 1 ;(AX)=0FFFFH,OF=0,ZF=0,SF=1,CF不影響不影響 ;(AX)=07FFEH,OF=0,ZF=0,SF=0,CF=1 ;(AX)=8000H, OF=1,ZF=0,SF=1,CF=0 ;(AX)=07FFFH,OF不變,不變,ZF=0,SF=0,CF不變不變 ;(AX)=8000H, OF=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論