青科大32位微機(jī)原理期末復(fù)習(xí)_第1頁
青科大32位微機(jī)原理期末復(fù)習(xí)_第2頁
青科大32位微機(jī)原理期末復(fù)習(xí)_第3頁
青科大32位微機(jī)原理期末復(fù)習(xí)_第4頁
青科大32位微機(jī)原理期末復(fù)習(xí)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識1.1.數(shù)制之間的轉(zhuǎn)換數(shù)制之間的轉(zhuǎn)換(1 1) 各位的系數(shù)乘以各位的權(quán),然后全部加起來。各位的系數(shù)乘以各位的權(quán),然后全部加起來。 2 24 4=16 =16 ,十進(jìn)制數(shù)轉(zhuǎn)換成二、十六進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換成二、十六進(jìn)制數(shù) 整數(shù)、小數(shù)分別轉(zhuǎn)換整數(shù)、小數(shù)分別轉(zhuǎn)換 整數(shù)轉(zhuǎn)換法整數(shù)轉(zhuǎn)換法 “ “除基取余除基取余”:十進(jìn)制整數(shù)不斷除以轉(zhuǎn)換進(jìn)制基數(shù),直至商為:十進(jìn)制整數(shù)不斷除以轉(zhuǎn)換進(jìn)制基數(shù),直至商為0 0。每除一。每除一次取一個(gè)余數(shù),從低位排向高位。次取一個(gè)余數(shù),從低位排向高位。小數(shù)轉(zhuǎn)換法小數(shù)轉(zhuǎn)換法 “ “乘基取整乘基取整”:用轉(zhuǎn)換進(jìn)制的基數(shù)乘以小數(shù)部分,直至小數(shù)為

2、:用轉(zhuǎn)換進(jìn)制的基數(shù)乘以小數(shù)部分,直至小數(shù)為0 0或達(dá)到轉(zhuǎn)或達(dá)到轉(zhuǎn)換精度要求的位數(shù)。每乘一次取一次整數(shù),從最高位排到最低位。換精度要求的位數(shù)。每乘一次取一次整數(shù),從最高位排到最低位。邏輯函數(shù)可以選用邏輯函數(shù)可以選用布爾代數(shù)式布爾代數(shù)式表示,表示,真值表真值表表示,或卡諾圖表示表示,或卡諾圖表示 。例:。例:A B X 0 0 0 0 1 0 1 0 0 1 1 1A B X 0 0 1 0 1 1 1 0 1 1 1 0X=AB X= AB 真值表真值表布爾代數(shù)式第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識2.2.邏輯函數(shù)的表示方法邏輯函數(shù)的表示方法第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識3

3、. 3. 真值表與邏輯表達(dá)式之間的相互轉(zhuǎn)換真值表與邏輯表達(dá)式之間的相互轉(zhuǎn)換與門與門與非門與非門ABA B X 0 0 0 0 1 0 1 0 0 1 1 1A B X 0 0 1 0 1 1 1 0 1 1 1 0X = A B X = A B ABX1. 用用與邏輯與邏輯寫出真值表中寫出真值表中每一橫行中輸出為每一橫行中輸出為 1 的的邏輯表達(dá)式;邏輯表達(dá)式;2. 用用或邏輯或邏輯匯總真值表中匯總真值表中全部輸出為全部輸出為 1 的邏輯。的邏輯。3. 不必理睬那些輸出為不必理睬那些輸出為 0的各行的內(nèi)容,它們已的各行的內(nèi)容,它們已經(jīng)隱含在通過經(jīng)隱含在通過 1、2 兩兩步寫出的表達(dá)式中。步寫出

4、的表達(dá)式中。X= A * B + A * B + A * BX真值表真值表第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識4.4.邏輯函數(shù)的化簡邏輯函數(shù)的化簡將一個(gè)邏輯函數(shù)變成一個(gè)形式更簡單,與之等效將一個(gè)邏輯函數(shù)變成一個(gè)形式更簡單,與之等效的邏輯函數(shù),稱為化簡。由于每個(gè)邏輯表達(dá)式是的邏輯函數(shù),稱為化簡。由于每個(gè)邏輯表達(dá)式是和一個(gè)電路相對應(yīng)的,因此表達(dá)式的化簡就能減和一個(gè)電路相對應(yīng)的,因此表達(dá)式的化簡就能減少實(shí)現(xiàn)它的電路所用的元器件。常用的兩種化簡少實(shí)現(xiàn)它的電路所用的元器件。常用的兩種化簡方法為:代數(shù)化簡法和卡諾圖化簡法。方法為:代數(shù)化簡法和卡諾圖化簡法。代數(shù)化簡法:利用布爾代數(shù)的基本公式和規(guī)則,

5、代數(shù)化簡法:利用布爾代數(shù)的基本公式和規(guī)則,進(jìn)行化簡的方法。進(jìn)行化簡的方法。例如:AB+AB+AB = A(B+B) +AB=A+AB = A + B 第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識5.5.半加器、半加器、全加器電路設(shè)計(jì)全加器電路設(shè)計(jì)FAabscico1位全加器框圖位全加器框圖1位全加器真值表:位全加器真值表:a b ci co s0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 11位全加器邏輯表達(dá)式位全加器邏輯表達(dá)式(電路圖見電路圖見p13)S= /a/bci+/ab/ci+a/b/ci

6、+abci=a b ciCo=/abci+a/bci+ab/ci+abci=ab+aci+bci 由多個(gè)一位全加器把進(jìn)位信號串聯(lián)而成,每個(gè)全加器都有由多個(gè)一位全加器把進(jìn)位信號串聯(lián)而成,每個(gè)全加器都有2級門的級門的延遲時(shí)間,故這種延遲時(shí)間,故這種n位加法器有位加法器有2n級門的延遲時(shí)間。級門的延遲時(shí)間。abscicoabscicoabscicoFAabscicocicoabaaaabbbbsssss6. 6. 二進(jìn)制數(shù)的加法電路設(shè)計(jì)二進(jìn)制數(shù)的加法電路設(shè)計(jì)第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識FAFAFA第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識7.7.二進(jìn)制數(shù)值數(shù)據(jù)的編碼方法二進(jìn)制數(shù)值數(shù)

7、據(jù)的編碼方法v原碼、反碼、補(bǔ)碼表示小結(jié):原碼、反碼、補(bǔ)碼表示小結(jié):正數(shù)的原碼、反碼、補(bǔ)碼表示均相同,正數(shù)的原碼、反碼、補(bǔ)碼表示均相同,符號位為符號位為0 0,數(shù)值位同數(shù)的真值。,數(shù)值位同數(shù)的真值。零的原碼和反碼均有零的原碼和反碼均有2 2個(gè)編碼,補(bǔ)碼只有個(gè)編碼,補(bǔ)碼只有1 1個(gè)編碼。個(gè)編碼。負(fù)數(shù)的原碼、反碼、補(bǔ)碼表示均不同,負(fù)數(shù)的原碼、反碼、補(bǔ)碼表示均不同,符號位為符號位為1 1,數(shù)值位:原碼為數(shù)的絕對值,數(shù)值位:原碼為數(shù)的絕對值 反碼為每一位均取反碼反碼為每一位均取反碼 補(bǔ)碼為反碼再在最低位補(bǔ)碼為反碼再在最低位+1+1由由XX補(bǔ)補(bǔ)求求-X-X補(bǔ)補(bǔ):每一位取反后:每一位取反后, ,再在最低位再

8、在最低位+ +1 1第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識8. 8. 補(bǔ)碼加法器補(bǔ)碼加法器/ /減法器電路減法器電路8 8位二進(jìn)制加法器電路:位二進(jìn)制加法器電路:第第1 1章章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識8 8位二進(jìn)制數(shù)補(bǔ)碼減法器電路:位二進(jìn)制數(shù)補(bǔ)碼減法器電路: 可控的可控的8 8位二進(jìn)制數(shù)補(bǔ)碼加減法器位二進(jìn)制數(shù)補(bǔ)碼加減法器(SUB=0,(SUB=0,加法加法,SUB=1,SUB=1,減法減法):):1.1.算術(shù)邏輯單元算術(shù)邏輯單元 算術(shù)邏輯單元算術(shù)邏輯單元(Arithmetic Logical Unit,(Arithmetic Logical Unit,簡稱簡稱ALU)ALU),用于

9、實(shí)現(xiàn)算術(shù)與邏,用于實(shí)現(xiàn)算術(shù)與邏輯運(yùn)算,包括加、減、乘、除等算術(shù)運(yùn)算和與、或、非、異或、同或等邏輯輯運(yùn)算,包括加、減、乘、除等算術(shù)運(yùn)算和與、或、非、異或、同或等邏輯運(yùn)算。運(yùn)算。2.2.觸發(fā)器觸發(fā)器 觸發(fā)器觸發(fā)器(Trigger)(Trigger)是構(gòu)成寄存器和存儲(chǔ)器的基本單元,是計(jì)算機(jī)的記憶細(xì)是構(gòu)成寄存器和存儲(chǔ)器的基本單元,是計(jì)算機(jī)的記憶細(xì)胞。胞。 D D觸發(fā)器觸發(fā)器3.3.寄存器寄存器w寄存器(寄存器(RegisterRegister)是由觸發(fā)器組成的一種存儲(chǔ)裝置。)是由觸發(fā)器組成的一種存儲(chǔ)裝置。w特點(diǎn):用于暫存數(shù)據(jù)。特點(diǎn):用于暫存數(shù)據(jù)。w不同于存儲(chǔ)器,數(shù)量少,速度快。不同于存儲(chǔ)器,數(shù)量少,速

10、度快。w分類:緩沖寄存器(分類:緩沖寄存器(Buffer RegisterBuffer Register):暫存數(shù)據(jù)。):暫存數(shù)據(jù)。w移位寄存器移位寄存器(Shift Register)(Shift Register):除存儲(chǔ)功能外,還具有移位功能。:除存儲(chǔ)功能外,還具有移位功能。w計(jì)數(shù)器計(jì)數(shù)器(Counter)(Counter):除存儲(chǔ)功能外,還具有計(jì)數(shù)功能。:除存儲(chǔ)功能外,還具有計(jì)數(shù)功能。w累加器累加器(Accumulator)(Accumulator):用于暫存:用于暫存ALUALU的計(jì)算結(jié)果。的計(jì)算結(jié)果。第第2 2章章 微處理器微處理器4. 4. 三態(tài)輸出電路三態(tài)輸出電路三態(tài)門是構(gòu)成總

11、線部件不可缺少的電路元件,其作用是可以使多個(gè)輸三態(tài)門是構(gòu)成總線部件不可缺少的電路元件,其作用是可以使多個(gè)輸入、輸出信號共享一條信號傳輸線,從而達(dá)到節(jié)省線路的目的。入、輸出信號共享一條信號傳輸線,從而達(dá)到節(jié)省線路的目的。(1)(1)三態(tài)輸出電路:見右圖。三態(tài)輸出電路:見右圖。(2)(2)工作原理:工作原理: E A BE A B 0 0 0 0 高阻高阻 0 1 0 1 高阻高阻 1 0 01 0 0 1 1 1 1 1 1即:即:E=0E=0時(shí),時(shí),A A、B B之間斷開,之間斷開, E=1E=1時(shí),時(shí),A A、B B之間導(dǎo)通。之間導(dǎo)通。三態(tài)門符號見右下圖。三態(tài)門符號見右下圖。注意:用兩個(gè)三態(tài)

12、門可以構(gòu)成雙向注意:用兩個(gè)三態(tài)門可以構(gòu)成雙向三態(tài)輸出電路,見教材三態(tài)輸出電路,見教材P29P29。三態(tài)門簡稱三態(tài)門簡稱E E門,裝入門簡稱門,裝入門簡稱L L門。門。三態(tài)指三態(tài)指0 0、1 1以及高阻態(tài)以及高阻態(tài)第第2 2章章 微處理器微處理器5. 5. 存儲(chǔ)器存儲(chǔ)器(Memory)(Memory)(1)(1)基本概念:基本概念:存儲(chǔ)器是計(jì)算機(jī)中用于存儲(chǔ)存儲(chǔ)器是計(jì)算機(jī)中用于存儲(chǔ)程序程序和和數(shù)據(jù)數(shù)據(jù)的裝置。的裝置。存儲(chǔ)器由許多存儲(chǔ)器由許多存儲(chǔ)單元存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元所存儲(chǔ)組成,每個(gè)存儲(chǔ)單元所存儲(chǔ)的內(nèi)容稱為一個(gè)的內(nèi)容稱為一個(gè)字字(word)(word),一個(gè)字由若干,一個(gè)字由若干位位(bit

13、)(bit)構(gòu)成,構(gòu)成,8 8個(gè)個(gè)bitbit稱為一個(gè)稱為一個(gè)字節(jié)字節(jié)(byte)(byte)。為了能夠準(zhǔn)確地訪問到。為了能夠準(zhǔn)確地訪問到所需要的存儲(chǔ)單元,必須為每個(gè)存儲(chǔ)單元分配一個(gè)所需要的存儲(chǔ)單元,必須為每個(gè)存儲(chǔ)單元分配一個(gè)地地址址(address(address, ,相當(dāng)于門牌號碼相當(dāng)于門牌號碼) )。地址是二進(jìn)制代碼,。地址是二進(jìn)制代碼,n n位地址碼可以表示位地址碼可以表示2 2n n個(gè)地址個(gè)地址,即,即n n根地址線可以譯出根地址線可以譯出2 2n n個(gè)地址號。個(gè)地址號。m m個(gè)存儲(chǔ)單元、每個(gè)存儲(chǔ)單元個(gè)存儲(chǔ)單元、每個(gè)存儲(chǔ)單元n n位的存儲(chǔ)器通常表示位的存儲(chǔ)器通常表示為為m mn n的

14、存儲(chǔ)器。例如:的存儲(chǔ)器。例如:16168 8存儲(chǔ)器表示有存儲(chǔ)器表示有1616個(gè)存儲(chǔ)個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元單元,每個(gè)存儲(chǔ)單元8 8位,它有位,它有4 4條地址線,條地址線,8 8條數(shù)據(jù)線。條數(shù)據(jù)線。第第2 2章章 微處理器微處理器6 6 存儲(chǔ)器存儲(chǔ)器(Memory)(Memory)(3)(3)存儲(chǔ)器的分類存儲(chǔ)器的分類: :半導(dǎo)體存儲(chǔ)器半導(dǎo)體存儲(chǔ)器(Simiconductor Memory)只讀存儲(chǔ)器只讀存儲(chǔ)器ROM(Read Only Memory)隨機(jī)存取存儲(chǔ)器隨機(jī)存取存儲(chǔ)器RAM(Random Access Memory)掩膜掩膜ROM可編程可編程ROM(一次性一次性)光擦可編程光擦可編程

15、EPROM電擦可編程電擦可編程EEPROM雙極型雙極型RAMMOS型型RAM靜態(tài)靜態(tài)(Static)動(dòng)態(tài)動(dòng)態(tài)(Dynamic)第第2 2章章 微處理器微處理器1616位微處理器概述位微處理器概述介紹介紹1616位微處理器位微處理器8086/80888086/8088的內(nèi)部結(jié)構(gòu)和工作原理。的內(nèi)部結(jié)構(gòu)和工作原理。80868086和和8088 CPU8088 CPU的內(nèi)部基本相同,但它們的外部性能是有區(qū)別的內(nèi)部基本相同,但它們的外部性能是有區(qū)別的。的。80868086是是1616位數(shù)據(jù)總線,而位數(shù)據(jù)總線,而80888088是是8 8位數(shù)據(jù)總線,在處理一個(gè)位數(shù)據(jù)總線,在處理一個(gè)1616位數(shù)據(jù)字時(shí),位數(shù)

16、據(jù)字時(shí),80888088需要兩步操作,而需要兩步操作,而80868086只需要一步。只需要一步。80868086和和8088 CPU8088 CPU的內(nèi)部都采用的內(nèi)部都采用1616位字進(jìn)行操作及存儲(chǔ)器尋址,位字進(jìn)行操作及存儲(chǔ)器尋址,兩者的軟件完全兼容,程序的執(zhí)行也完全相同。然而,由于兩者的軟件完全兼容,程序的執(zhí)行也完全相同。然而,由于80888088要比要比80868086有較多的外部存儲(chǔ)操作,所以,對于相同的程序,它將有較多的外部存儲(chǔ)操作,所以,對于相同的程序,它將執(zhí)行得較慢。這兩種微處理器都采用相同的執(zhí)行得較慢。這兩種微處理器都采用相同的4040腳雙列直插式腳雙列直插式(DIP)(DIP)

17、封裝。封裝。4.2 8086/8088 CPU4.2 8086/8088 CPU的結(jié)構(gòu)的結(jié)構(gòu)8086/8088 CPU8086/8088 CPU從功能上可分為兩部分,即總線接口部件從功能上可分為兩部分,即總線接口部件BIU(bus interface unit,BIU(bus interface unit,縮寫為縮寫為BIU)BIU)和執(zhí)行部件和執(zhí)行部件EU(execution EU(execution unit,unit,縮寫為縮寫為EU). 8086/8088 CPUEU). 8086/8088 CPU的內(nèi)部結(jié)構(gòu)如下圖所示:的內(nèi)部結(jié)構(gòu)如下圖所示:第第2 2章章 微處理器微處理器808880

18、88的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)1 2 3 4 內(nèi)部暫存器內(nèi)部暫存器 IP ES SS DS CS輸入輸入/輸出輸出控制電路控制電路外部總線外部總線執(zhí)行部分執(zhí)行部分控制電路控制電路ALU標(biāo)志寄存器標(biāo)志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用通用寄存器寄存器地址地址加法加法器器指令隊(duì)列指令隊(duì)列執(zhí)行部件執(zhí)行部件 (EU)總線接口部件總線接口部件 (BIU)16位位20位位8位位8位位執(zhí)行部件執(zhí)行部件執(zhí)行部件執(zhí)行部件EUEU的功能就是負(fù)責(zé)指令的執(zhí)行,對指令進(jìn)行譯碼,并利用內(nèi)部的寄的功能就是負(fù)責(zé)指令的執(zhí)行,對指令進(jìn)行譯碼,并利用內(nèi)部的寄存器和存器和ALUALU對數(shù)據(jù)進(jìn)行

19、所需的處理。對數(shù)據(jù)進(jìn)行所需的處理。執(zhí)行部件執(zhí)行部件EUEU有下列部分組成:有下列部分組成:4 4個(gè)通用寄存器,即個(gè)通用寄存器,即AX BX CX DX;AX BX CX DX;4 4個(gè)專用寄存器,即基數(shù)指針寄存器個(gè)專用寄存器,即基數(shù)指針寄存器BPBP、堆棧指針寄存器、堆棧指針寄存器SPSP、源變址寄存器、源變址寄存器SISI、目的、目的變址寄存器變址寄存器DI;DI;標(biāo)志寄存器;標(biāo)志寄存器;算術(shù)邏輯單元。算術(shù)邏輯單元。說明:說明:4 4個(gè)通用寄存器既可以作為個(gè)通用寄存器既可以作為1616位寄存器使用,也可以作為位寄存器使用,也可以作為8 8位寄存器使用。位寄存器使用。AXAX寄存器也稱為累加器

20、。許多指令都是利用累加器來執(zhí)行的。寄存器也稱為累加器。許多指令都是利用累加器來執(zhí)行的。算術(shù)邏輯部件主要是加法器,絕大部分指令的執(zhí)行都是由加法器完成的。算術(shù)邏輯部件主要是加法器,絕大部分指令的執(zhí)行都是由加法器完成的。標(biāo)志寄存器共有標(biāo)志寄存器共有1616位,其中位,其中7 7位未用,格式如下表所示,各位的含義見課本位未用,格式如下表所示,各位的含義見課本7575頁表頁表4-14-1第第2 2章章 微處理器微處理器根據(jù)功能,根據(jù)功能,8086/80888086/8088的標(biāo)志可以分為兩類:一類叫狀態(tài)標(biāo)志,另一類叫控的標(biāo)志可以分為兩類:一類叫狀態(tài)標(biāo)志,另一類叫控制標(biāo)志。狀態(tài)標(biāo)志表示前面的操作執(zhí)行后,制

21、標(biāo)志。狀態(tài)標(biāo)志表示前面的操作執(zhí)行后,ALUALU處于何種狀態(tài),該狀態(tài)會(huì)影響處于何種狀態(tài),該狀態(tài)會(huì)影響后面的操作;控制標(biāo)志是人為設(shè)置的,指令系統(tǒng)中有專門的指令用于控制標(biāo)后面的操作;控制標(biāo)志是人為設(shè)置的,指令系統(tǒng)中有專門的指令用于控制標(biāo)志的設(shè)置和清除,每個(gè)控制標(biāo)志都對某一特定的功能起控制作用。志的設(shè)置和清除,每個(gè)控制標(biāo)志都對某一特定的功能起控制作用。狀態(tài)標(biāo)志有狀態(tài)標(biāo)志有6 6個(gè),即個(gè),即SFSF、ZFZF、PFPF、CFCF、AFAF、OFOF。SFSF:符號標(biāo)志,和運(yùn)算結(jié)果的最高位相同,表示運(yùn)算結(jié)果是正還是負(fù)。:符號標(biāo)志,和運(yùn)算結(jié)果的最高位相同,表示運(yùn)算結(jié)果是正還是負(fù)。ZFZF:零標(biāo)志,表示當(dāng)前

22、的運(yùn)算結(jié)果是否為零,是則為:零標(biāo)志,表示當(dāng)前的運(yùn)算結(jié)果是否為零,是則為1 1,否則為,否則為0 0。PFPF:奇:奇/ /偶標(biāo)志,如運(yùn)算結(jié)果低偶標(biāo)志,如運(yùn)算結(jié)果低8 8位中所含的位中所含的1 1的個(gè)數(shù)為偶數(shù),則為的個(gè)數(shù)為偶數(shù),則為1 1,否則,否則0 0CFCF:進(jìn)位標(biāo)志,當(dāng)執(zhí)行一個(gè)加法運(yùn)算使最高位產(chǎn)生進(jìn)位時(shí),或者執(zhí)行一個(gè)減:進(jìn)位標(biāo)志,當(dāng)執(zhí)行一個(gè)加法運(yùn)算使最高位產(chǎn)生進(jìn)位時(shí),或者執(zhí)行一個(gè)減法運(yùn)算引起最高位產(chǎn)生借位時(shí),法運(yùn)算引起最高位產(chǎn)生借位時(shí),CFCF為為1 1,此外,循環(huán)指令也會(huì)影響這一標(biāo)志。,此外,循環(huán)指令也會(huì)影響這一標(biāo)志。AFAF:輔助進(jìn)位標(biāo)志,如果當(dāng)進(jìn)行加法運(yùn)算時(shí),第三位向第四位進(jìn)位,或

23、者進(jìn):輔助進(jìn)位標(biāo)志,如果當(dāng)進(jìn)行加法運(yùn)算時(shí),第三位向第四位進(jìn)位,或者進(jìn)行減法運(yùn)算時(shí),第三位從第四位借位,則行減法運(yùn)算時(shí),第三位從第四位借位,則AFAF為為1 1。輔助進(jìn)位標(biāo)志一般在。輔助進(jìn)位標(biāo)志一般在BCDBCD碼碼運(yùn)算中作為是否進(jìn)行十進(jìn)制調(diào)整的判斷依據(jù)。運(yùn)算中作為是否進(jìn)行十進(jìn)制調(diào)整的判斷依據(jù)。OFOF:溢出標(biāo)志,運(yùn)算結(jié)果產(chǎn)生溢出則為:溢出標(biāo)志,運(yùn)算結(jié)果產(chǎn)生溢出則為1 1,否則為,否則為0 0。例題:例題:0010 0011 0100 01010010 0011 0100 01010011 0010 0001 10010011 0010 0001 10010101 0101 01010101 0

24、101 0101 1110 11100101 0100 0011 10010101 0100 0011 10010100 0101 0110 10100100 0101 0110 10101001 10011001 1001 1010 0011 1010 0011SF=0,ZF=0,PF=0,CF=0,AF=0,OF=0SF=0,ZF=0,PF=0,CF=0,AF=0,OF=0SF=1,ZF=0,PF=1,CF=0,AF=1,OF=1SF=1,ZF=0,PF=1,CF=0,AF=1,OF=1+ + +第第2 2章章 微處理器微處理器控制標(biāo)志有控制標(biāo)志有3 3個(gè),即個(gè),即DFDF、IFIF、TF

25、TF。DFDF:方向標(biāo)志,控制串操作指令。如果:方向標(biāo)志,控制串操作指令。如果DF=0DF=0,則串操作過程中地址會(huì)不斷增,則串操作過程中地址會(huì)不斷增值;如果值;如果DF=1DF=1,則串操作過程中地址會(huì)不斷減值;,則串操作過程中地址會(huì)不斷減值;IFIF:中斷標(biāo)志,控制可屏蔽中斷。如果:中斷標(biāo)志,控制可屏蔽中斷。如果IF=0IF=0,則,則CPUCPU不能對可屏蔽中斷請求作不能對可屏蔽中斷請求作出響應(yīng);如果出響應(yīng);如果IF=1IF=1,則,則CPUCPU可以響應(yīng)可屏蔽中斷請求??梢皂憫?yīng)可屏蔽中斷請求。TFTF:跟蹤標(biāo)志,如果:跟蹤標(biāo)志,如果TF=1TF=1,則,則CPUCPU按跟蹤方式執(zhí)行指令

26、。按跟蹤方式執(zhí)行指令。這些控制標(biāo)志一旦設(shè)置之后,便對后面的操作產(chǎn)生控制作用。這些控制標(biāo)志一旦設(shè)置之后,便對后面的操作產(chǎn)生控制作用??偩€接口部件總線接口部件BIUBIU總線接口部件的功能是負(fù)責(zé)與存儲(chǔ)器、總線接口部件的功能是負(fù)責(zé)與存儲(chǔ)器、I/OI/O端口傳送數(shù)據(jù)。具體講,總線接端口傳送數(shù)據(jù)。具體講,總線接口部件要從內(nèi)存取指令送到指令隊(duì)列;口部件要從內(nèi)存取指令送到指令隊(duì)列;CPUCPU執(zhí)行指令時(shí),總線接口部件要配合執(zhí)行指令時(shí),總線接口部件要配合執(zhí)行部件從指定的內(nèi)存單元或外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件,執(zhí)行部件從指定的內(nèi)存單元或外設(shè)端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件,或者把執(zhí)行部件的操作結(jié)果傳

27、送到指定的內(nèi)存單元或外設(shè)端口中?;蛘甙褕?zhí)行部件的操作結(jié)果傳送到指定的內(nèi)存單元或外設(shè)端口中??偩€接口部件由下列個(gè)部分組成:總線接口部件由下列個(gè)部分組成:4 4個(gè)段地址寄存器,即個(gè)段地址寄存器,即CSCS、DSDS、ESES、SSSS;1616位的指令指針寄存器位的指令指針寄存器IP;IP;2020位的地址加法器;位的地址加法器;6 6字節(jié)的指令隊(duì)列;字節(jié)的指令隊(duì)列;第第2 2章章 微處理器微處理器存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器結(jié)構(gòu)8086/80888086/8088系統(tǒng)中存儲(chǔ)器按字節(jié)編址,可尋址的存儲(chǔ)器空間為系統(tǒng)中存儲(chǔ)器按字節(jié)編址,可尋址的存儲(chǔ)器空間為1MB1MB。 8086/80888086/8088系統(tǒng)把

28、系統(tǒng)把1M1M存儲(chǔ)空間分成若干個(gè)邏輯段,每個(gè)邏輯段容量存儲(chǔ)空間分成若干個(gè)邏輯段,每個(gè)邏輯段容量64KB64KB。邏輯段可以在存儲(chǔ)空間中浮動(dòng),段與段之間可以重疊。邏輯段可以在存儲(chǔ)空間中浮動(dòng),段與段之間可以重疊。1616字節(jié)的存儲(chǔ)空間稱為字節(jié)的存儲(chǔ)空間稱為1 1節(jié),要求各個(gè)邏輯段從節(jié)的整數(shù)邊界開始,即段首節(jié),要求各個(gè)邏輯段從節(jié)的整數(shù)邊界開始,即段首地址低地址低4 4位是位是0 0,因此就把段首地址的高,因此就把段首地址的高1616位稱為位稱為“段基址段基址”,存放在段寄存,存放在段寄存器中,段內(nèi)的器中,段內(nèi)的“偏移地址偏移地址” ” 放在放在IPIP或或SPSP中。中。存儲(chǔ)器中的邏輯地址和物理地址

29、:存儲(chǔ)器中的邏輯地址和物理地址:邏輯地址:由段基址和偏移地址構(gòu)成,邏輯地址:由段基址和偏移地址構(gòu)成,1616位。位。物理地址:實(shí)際地址、絕對地址,物理地址:實(shí)際地址、絕對地址,2020位。位。程序用邏輯地址編址,而不是用物理地址。程序用邏輯地址編址,而不是用物理地址。邏輯地址到物理地址的轉(zhuǎn)換邏輯地址到物理地址的轉(zhuǎn)換( (由由BIUBIU中的地址加法器實(shí)現(xiàn)中的地址加法器實(shí)現(xiàn)) ):物理地址物理地址= =段基址段基址16+16+段內(nèi)偏移地址段內(nèi)偏移地址例如:例如:CS=2000H,IP=2200H,CS=2000H,IP=2200H,則物理地址則物理地址=22200H=22200H4 4個(gè)段寄存器

30、分別指向個(gè)段寄存器分別指向4 4個(gè)現(xiàn)行可尋址的分段的起始字節(jié)單元。一般指令程序個(gè)現(xiàn)行可尋址的分段的起始字節(jié)單元。一般指令程序存放在代碼段中,段地址來源于代碼段寄存器,偏移地址來源于指令指針存放在代碼段中,段地址來源于代碼段寄存器,偏移地址來源于指令指針I(yè)PIP。當(dāng)涉及到一個(gè)堆棧操作時(shí),段地址寄存器為。當(dāng)涉及到一個(gè)堆棧操作時(shí),段地址寄存器為SSSS,偏移地址來源于棧指針寄,偏移地址來源于棧指針寄存器存器SPSP。當(dāng)涉及到一個(gè)操作數(shù)時(shí),則。當(dāng)涉及到一個(gè)操作數(shù)時(shí),則DSDS或或ESES作為段寄存器,而偏移地址為作為段寄存器,而偏移地址為1616位偏移量,該偏移量取決于指令的尋址方式。位偏移量,該偏移

31、量取決于指令的尋址方式。第第2 2章章 微處理器微處理器8086/80888086/8088的兩種工作模式的兩種工作模式兩種工作模式構(gòu)成兩種不同規(guī)模的應(yīng)用系統(tǒng)兩種工作模式構(gòu)成兩種不同規(guī)模的應(yīng)用系統(tǒng)最小工作模式最小工作模式n系統(tǒng)中只有系統(tǒng)中只有8086/80888086/8088一個(gè)微處理器。一個(gè)微處理器。n所有的總線控制信號都直接由所有的總線控制信號都直接由8086/80888086/8088產(chǎn)生。產(chǎn)生。最大工作模式最大工作模式n構(gòu)成較大規(guī)模的應(yīng)用系統(tǒng),系統(tǒng)中包含兩個(gè)或多個(gè)微處理構(gòu)成較大規(guī)模的應(yīng)用系統(tǒng),系統(tǒng)中包含兩個(gè)或多個(gè)微處理器,其中器,其中8086/80888086/8088是主處理器,其

32、他的處理器稱為協(xié)處是主處理器,其他的處理器稱為協(xié)處理器。和理器。和8086/80888086/8088配合使用的協(xié)處理器主要有兩個(gè):數(shù)配合使用的協(xié)處理器主要有兩個(gè):數(shù)值運(yùn)算協(xié)處理器值運(yùn)算協(xié)處理器80878087和輸入和輸入/ /輸出協(xié)處理器輸出協(xié)處理器80898089。n8086/80888086/8088和總線控制器和總線控制器82888288等共同形成總線控制信號。等共同形成總線控制信號。兩種模式利用兩種模式利用MN/MXMN/MX* *引腳區(qū)別引腳區(qū)別nMN/MXMN/MX* *接高電平為最小工作模式接高電平為最小工作模式nMN/MXMN/MX* *接低電平為最大工作模式接低電平為最大工

33、作模式第第3 3章章 指令系統(tǒng)指令系統(tǒng)主要內(nèi)容v8686系列匯編語言及指令的格式與尋址方式系列匯編語言及指令的格式與尋址方式v傳送類指令傳送類指令v數(shù)據(jù)操作類指令數(shù)據(jù)操作類指令v串操作指令串操作指令v控制類指令控制類指令指令指令是讓計(jì)算機(jī)完成某種操作的命令,指令的集合是讓計(jì)算機(jī)完成某種操作的命令,指令的集合稱作稱作指令系統(tǒng)。指令系統(tǒng)。指令系統(tǒng)是軟硬件之間的指令系統(tǒng)是軟硬件之間的界面和橋梁,界面和橋梁,軟件通過指軟件通過指令驅(qū)動(dòng)硬件實(shí)現(xiàn)某種功能。指令是程序的令驅(qū)動(dòng)硬件實(shí)現(xiàn)某種功能。指令是程序的基本組成基本組成部分,部分,是計(jì)算機(jī)能夠?qū)崿F(xiàn)是計(jì)算機(jī)能夠?qū)崿F(xiàn)的最小功能單位。的最小功能單位。指令系統(tǒng)與計(jì)

34、算機(jī)硬件密切相關(guān),不同系列計(jì)算機(jī)指令系統(tǒng)與計(jì)算機(jī)硬件密切相關(guān),不同系列計(jì)算機(jī)有不同的指令系統(tǒng)。有不同的指令系統(tǒng)。計(jì)算機(jī)能夠直接識別的是二進(jìn)制編碼形式的計(jì)算機(jī)能夠直接識別的是二進(jìn)制編碼形式的機(jī)器指機(jī)器指令,令,用助記符表示的指令稱為用助記符表示的指令稱為匯編語言指令匯編語言指令。匯編語言指令與機(jī)器指令具有匯編語言指令與機(jī)器指令具有一一對應(yīng)一一對應(yīng)關(guān)系,用匯關(guān)系,用匯編語言指令進(jìn)行編程能夠充分開發(fā)計(jì)算機(jī)硬件資源,編語言指令進(jìn)行編程能夠充分開發(fā)計(jì)算機(jī)硬件資源,它的程序它的程序目標(biāo)代碼短、運(yùn)行速度快目標(biāo)代碼短、運(yùn)行速度快,在自動(dòng)控制、,在自動(dòng)控制、智能化儀器儀表、監(jiān)測等領(lǐng)域應(yīng)用非常廣泛。智能化儀器儀表

35、、監(jiān)測等領(lǐng)域應(yīng)用非常廣泛。基本概念基本概念8686系列匯編語言及指令的格式與尋址方式系列匯編語言及指令的格式與尋址方式8686系列匯編語言指令語句格式系列匯編語言指令語句格式任何一種匯編語言的指令語句都是與機(jī)器指令一任何一種匯編語言的指令語句都是與機(jī)器指令一一對應(yīng)的,它通過一對應(yīng)的,它通過匯編程序匯編程序?qū)⑵浞g成機(jī)器指令將其翻譯成機(jī)器指令代碼代碼( (目標(biāo)代碼目標(biāo)代碼) ),讓,讓CPUCPU執(zhí)行某種操作。執(zhí)行某種操作。8686系列匯編語言指令語句格式如下圖,圖中由前系列匯編語言指令語句格式如下圖,圖中由前向后的箭頭表示是可選項(xiàng),由后向前的箭頭表示向后的箭頭表示是可選項(xiàng),由后向前的箭頭表示是

36、重復(fù)項(xiàng),圓頭方框表示是語句中的關(guān)鍵字。是重復(fù)項(xiàng),圓頭方框表示是語句中的關(guān)鍵字。8686系列微機(jī)的指令系統(tǒng)的尋址方式系列微機(jī)的指令系統(tǒng)的尋址方式所謂指令的所謂指令的尋址方式尋址方式是指確定本條指令的是指確定本條指令的操作數(shù)地址操作數(shù)地址及下一及下一條要執(zhí)行的條要執(zhí)行的指令地址指令地址的方法。的方法。操作數(shù)采取哪一種尋址方式,會(huì)影響機(jī)器運(yùn)行的速度和效率。操作數(shù)采取哪一種尋址方式,會(huì)影響機(jī)器運(yùn)行的速度和效率。80868086的機(jī)器代碼(的機(jī)器代碼(Machine CodeMachine Code)格式)格式n操作碼占操作碼占1 1個(gè)或個(gè)或2 2個(gè)字節(jié)個(gè)字節(jié)n后面的各個(gè)字節(jié)指明操作數(shù):后面的各個(gè)字節(jié)指

37、明操作數(shù):n“mod regmod reg r/m” r/m”字節(jié)表明采用的尋址方式,字節(jié)表明采用的尋址方式,n“位移量位移量”字節(jié)給出某些尋址方式所需對基地址的偏移量字節(jié)給出某些尋址方式所需對基地址的偏移量n“立即數(shù)立即數(shù)”字節(jié)給出立即尋址方式需要的數(shù)值本身。字節(jié)給出立即尋址方式需要的數(shù)值本身。1.1.立即數(shù)尋址立即數(shù)尋址w8086 CPU8086 CPU指令系統(tǒng)中,有一部分指令所用的指令系統(tǒng)中,有一部分指令所用的8 8位或位或1616位操位操作數(shù)就在指令中提供,這種方式叫立即數(shù)尋址方式。作數(shù)就在指令中提供,這種方式叫立即數(shù)尋址方式。例如:MOV AL,80H;將十六進(jìn)制數(shù)80H送入ALMO

38、V AX,1090H;將1090H送AX,AH中為10H,AL中為90H采用立即數(shù)尋址方式的指令主要用來對寄存器賦值。因?yàn)椴僮鲾?shù)可以從指令中直接取得,不需要運(yùn)行總線周期,所以,立即數(shù)尋址方式的顯著特點(diǎn)就是速度快。立即數(shù)可以為8位,也可以為16位;規(guī)定立即數(shù)只能是整數(shù),不能是小數(shù)、變量或者其他類型的數(shù)據(jù);另外還要注意,立即數(shù)只能作為源操作數(shù)。8686系列微機(jī)的指令系統(tǒng)的尋址方式系列微機(jī)的指令系統(tǒng)的尋址方式2. 2. 寄存器尋址寄存器尋址w如果操作數(shù)就在如果操作數(shù)就在CPUCPU的內(nèi)部寄存器中,那么在指令中可用寄的內(nèi)部寄存器中,那么在指令中可用寄存器名指出操作數(shù)的位置。這種尋址方式就叫寄存器尋址方

39、存器名指出操作數(shù)的位置。這種尋址方式就叫寄存器尋址方式。式。對16位操作數(shù)來說,寄存器可以為AX,BX,CX,DX,SI,DI,SP或者BP,而對8位操作數(shù)來說,寄存器可為AH,AL,BH,BL,CH,CL,DH,DL。例如:INCCX;將CX的內(nèi)容加1ROLAH,1;將AH中的內(nèi)容循環(huán)左移一位采用寄存器尋址方式的指令在執(zhí)行時(shí),操作就在CPU內(nèi)部進(jìn)行,不需要使用總線周期,因此,。8686系列微機(jī)的指令系統(tǒng)的尋址方式系列微機(jī)的指令系統(tǒng)的尋址方式3. 3. 直接尋址直接尋址使用直接尋址方式時(shí),數(shù)據(jù)總是在存儲(chǔ)器中,存儲(chǔ)單元的使用直接尋址方式時(shí),數(shù)據(jù)總是在存儲(chǔ)器中,存儲(chǔ)單元的有效地址由指令直接指出有效

40、地址由指令直接指出,所以直接尋址是對存儲(chǔ)器進(jìn)行,所以直接尋址是對存儲(chǔ)器進(jìn)行訪問時(shí)可采用的最簡單的方式。訪問時(shí)可采用的最簡單的方式。n例如:例如:MOV AXMOV AX,1070H1070H;將;將DSDS段的段的1070H1070H和和1071H1071H兩單元內(nèi)容取到兩單元內(nèi)容取到AXAX中中采用直接尋址方式時(shí),如果指令前面沒有用前綴指明操作數(shù)在哪一段,則默認(rèn)為段寄存器是數(shù)據(jù)段寄存器DS。n例如,上一條指令執(zhí)行時(shí),設(shè)例如,上一條指令執(zhí)行時(shí),設(shè)DSDS2000H2000H,則執(zhí)行過程是將絕對地,則執(zhí)行過程是將絕對地址為址為21070H21070H和和21071H21071H兩單元的內(nèi)容取出送

41、兩單元的內(nèi)容取出送AXAX。8686系列微機(jī)的指令系統(tǒng)的尋址方式系列微機(jī)的指令系統(tǒng)的尋址方式4. 4. 寄存器間接尋址寄存器間接尋址w采用采用寄存器間接尋址方式寄存器間接尋址方式時(shí),操作數(shù)一定在存儲(chǔ)器中,存儲(chǔ)單元的有效時(shí),操作數(shù)一定在存儲(chǔ)器中,存儲(chǔ)單元的有效地址由寄存器指出,這些寄存器可以為地址由寄存器指出,這些寄存器可以為BXBX,BPBP,SISI和和DIDI之一,即有效地之一,即有效地址等于其中某一個(gè)寄存器的值址等于其中某一個(gè)寄存器的值( (或加上一個(gè)位移量,稱為或加上一個(gè)位移量,稱為寄存器相對尋寄存器相對尋址址) ) : BXBX BPBP + 8+ 8位位移量位位移量EAEA SIS

42、I 1616位位移量位位移量 DIDI寄存器間接尋址可分為以下4種:n以以BXBX寄存器進(jìn)行間接尋址寄存器進(jìn)行間接尋址數(shù)據(jù)段基址尋址數(shù)據(jù)段基址尋址n以以BPBP寄存器進(jìn)行間接尋址寄存器進(jìn)行間接尋址堆棧段基址尋址堆棧段基址尋址n以以SISI和和DIDI寄存器進(jìn)行間接尋址寄存器進(jìn)行間接尋址變址尋址變址尋址n將將BXBX,BPBP和和SISI,DIDI寄存器組合起來進(jìn)行間接尋址寄存器組合起來進(jìn)行間接尋址基址加變址尋址基址加變址尋址8686系列微機(jī)的指令系統(tǒng)的尋址方式系列微機(jī)的指令系統(tǒng)的尋址方式8686系列微機(jī)的指令系統(tǒng)的尋址方式系列微機(jī)的指令系統(tǒng)的尋址方式尋址方式總結(jié):尋址方式總結(jié):傳送類指令傳送類

43、指令傳送類指令是指令系統(tǒng)中最活躍的一類指令,也是傳送類指令是指令系統(tǒng)中最活躍的一類指令,也是條數(shù)最多的一類指令,主要用于數(shù)據(jù)的保存及交換條數(shù)最多的一類指令,主要用于數(shù)據(jù)的保存及交換等場合。等場合。傳送類指令可以分為傳送類指令可以分為4 4種:種:n通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令n目標(biāo)地址傳送指令目標(biāo)地址傳送指令n標(biāo)志位傳送指令標(biāo)志位傳送指令nI/OI/O數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令指令類型指令格式指令功能狀態(tài)標(biāo)志位備注O S Z A P C通用數(shù)據(jù)傳送MOV 目標(biāo),源PUSH 源POP 目標(biāo)XCHG 目標(biāo),源XLAT傳送字節(jié)或字字壓入堆棧字彈出堆棧交換字節(jié)或字字節(jié)翻譯 . . . . . . 源

44、:R、M、立即數(shù) 目標(biāo):R、M源:R、M目標(biāo):R(CS除外)、M源:通用R、M 目標(biāo):通用R、M目標(biāo)地址傳送LEA 目標(biāo),源LDS目標(biāo),源LES目標(biāo),源裝入有效地址裝入數(shù)據(jù)段指針到DS裝入附加段指針到ES 源:內(nèi)存操作數(shù) 目標(biāo):16位通用R源:內(nèi)存操作數(shù) 目標(biāo): 16位通用R源:內(nèi)存操作數(shù) 目標(biāo): 16位通用R標(biāo)志位傳送LAHFSAHFPUSHFPOPF把FR低字節(jié)裝入AH把AH內(nèi)容裝入FR低字節(jié)把FR內(nèi)容壓入堆棧從堆棧中彈出FR內(nèi)容 I/O數(shù)據(jù)傳送IN 累加器,端口OUT 端口,累加器輸入字節(jié)或字輸出字節(jié)或字 累加器:AL或AX端口:地址0255或間址寄存器DX 說明:說明: 表示運(yùn)算結(jié)果影

45、響標(biāo)志位,表示運(yùn)算結(jié)果影響標(biāo)志位, 表示運(yùn)算結(jié)果不影響標(biāo)志位。表示運(yùn)算結(jié)果不影響標(biāo)志位。傳送類指令傳送類指令數(shù)據(jù)操作類指令數(shù)據(jù)操作類指令8686系列系列 CPUCPU指令系統(tǒng)中,具有完備的加、減、乘、除算術(shù)運(yùn)指令系統(tǒng)中,具有完備的加、減、乘、除算術(shù)運(yùn)算指令,可處理不帶符號或帶符號的算指令,可處理不帶符號或帶符號的8/168/16位二進(jìn)制整數(shù),以位二進(jìn)制整數(shù),以及不帶符號的裝配型及不帶符號的裝配型/ /拆開型十進(jìn)制整數(shù)。拆開型十進(jìn)制整數(shù)。數(shù)據(jù)操作類指令包括以下幾種類型的指令:數(shù)據(jù)操作類指令包括以下幾種類型的指令:算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令n加法指令加法指令n減法指令減法指令n乘法指令乘法指令n除法

46、指令除法指令nBCDBCD碼運(yùn)算(十進(jìn)制調(diào)整)指令碼運(yùn)算(十進(jìn)制調(diào)整)指令邏輯運(yùn)算和移位指令邏輯運(yùn)算和移位指令n邏輯運(yùn)算指令邏輯運(yùn)算指令n移位指令移位指令n循環(huán)移位指令循環(huán)移位指令串操作指令串操作指令基本概念和說明:基本概念和說明:1 1、串、串(String):(String):占用一片連續(xù)存儲(chǔ)區(qū)域的數(shù)據(jù)塊。占用一片連續(xù)存儲(chǔ)區(qū)域的數(shù)據(jù)塊。 如:高級語言中的字符串、數(shù)組、結(jié)構(gòu)等。如:高級語言中的字符串、數(shù)組、結(jié)構(gòu)等。2 2、串的操作類型:、串的操作類型: 傳送傳送( (或稱復(fù)制或稱復(fù)制MOVSBMOVSB、MOVSW)MOVSW)、 比較比較(CMPSB(CMPSB、CMPSW)CMPSW)、

47、 掃描掃描( (或稱搜索或稱搜索SCASBSCASB、SCASW)SCASW)、 讀讀(LODSB(LODSB、LODSW)LODSW)、 寫寫(STOSB(STOSB、STOSW)STOSW)等。等。控制類指令控制類指令控制類指令控制類指令包括包括程序轉(zhuǎn)移指令程序轉(zhuǎn)移指令和和處理機(jī)控制指令處理機(jī)控制指令。凡屬能改變指令執(zhí)行順序的指令,統(tǒng)稱為程序轉(zhuǎn)移凡屬能改變指令執(zhí)行順序的指令,統(tǒng)稱為程序轉(zhuǎn)移指令。指令。8686系列指令系統(tǒng)中,程序轉(zhuǎn)移指令可分成系列指令系統(tǒng)中,程序轉(zhuǎn)移指令可分成4 4種種類型類型n無條件轉(zhuǎn)移類指令無條件轉(zhuǎn)移類指令(JMP,CALL,RET)(JMP,CALL,RET)n條件轉(zhuǎn)

48、移類指令條件轉(zhuǎn)移類指令(JA,JAE,JB,JBE;JG,JGE,JL,JLE;JC,JNC,JZ,JNZ,J(JA,JAE,JB,JBE;JG,JGE,JL,JLE;JC,JNC,JZ,JNZ,JO,JNO,JP,JNP,JS,JNS)O,JNO,JP,JNP,JS,JNS)n循環(huán)控制類指令循環(huán)控制類指令(LOOP,LOOPZ,LOOPNZ,JCXZ)(LOOP,LOOPZ,LOOPNZ,JCXZ)n中斷類指令中斷類指令(INT,INTO,IRET)(INT,INTO,IRET)關(guān)于各類轉(zhuǎn)移指令的格式、功能及測試條件詳見關(guān)于各類轉(zhuǎn)移指令的格式、功能及測試條件詳見P133P133表表5-105

49、-10第第4 4章章 匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)主要內(nèi)容v程序設(shè)計(jì)步驟程序設(shè)計(jì)步驟v簡單程序簡單程序( (順序結(jié)構(gòu)順序結(jié)構(gòu)) )v分支程序分支程序( (分支結(jié)構(gòu)分支結(jié)構(gòu)) )v循環(huán)程序循環(huán)程序( (循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)) )v子程序子程序程序設(shè)計(jì)步驟程序設(shè)計(jì)步驟匯編語言程序設(shè)計(jì)步驟:匯編語言程序設(shè)計(jì)步驟: (1)(1)分析問題分析問題:已知條件、要解決的問題、功能:已知條件、要解決的問題、功能/ /性能要求等。性能要求等。 (2)(2)建立數(shù)學(xué)模型建立數(shù)學(xué)模型:把問題數(shù)學(xué)化、公式化,便于計(jì)算機(jī)處理。:把問題數(shù)學(xué)化、公式化,便于計(jì)算機(jī)處理。 (3)(3)確定算法確定算法:簡單、速度快、精度高、

50、代碼量小、編程容易。:簡單、速度快、精度高、代碼量小、編程容易。 (4)(4)繪制程序流程圖繪制程序流程圖:用箭頭、框圖、菱形圖等表示程序結(jié)構(gòu)。:用箭頭、框圖、菱形圖等表示程序結(jié)構(gòu)。 (5)(5)內(nèi)存空間分配內(nèi)存空間分配:為程序或數(shù)據(jù)分配內(nèi)存空間。:為程序或數(shù)據(jù)分配內(nèi)存空間。 (6)(6)編制程序與靜態(tài)檢查編制程序與靜態(tài)檢查:程序結(jié)構(gòu)層次簡單、清楚、易懂。:程序結(jié)構(gòu)層次簡單、清楚、易懂。 (7)(7)程序調(diào)試程序調(diào)試:利用調(diào)試軟件:利用調(diào)試軟件DEBUGDEBUG進(jìn)行調(diào)試。進(jìn)行調(diào)試。匯編語言程序設(shè)計(jì)的特點(diǎn):匯編語言程序設(shè)計(jì)的特點(diǎn): (1)(1)算法要分解至算法要分解至指令級指令級;高級語言為;

51、高級語言為語句級語句級。 (2)(2)要詳細(xì)考慮要詳細(xì)考慮內(nèi)存空間分配內(nèi)存空間分配問題:任何一個(gè)變量、一條指令問題:任何一個(gè)變量、一條指令都要明確其存儲(chǔ)位置。都要明確其存儲(chǔ)位置。分支程序分支程序分支程序是利用分支程序是利用條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令實(shí)現(xiàn)實(shí)現(xiàn)程序執(zhí)行次序改變程序執(zhí)行次序改變的一種程序結(jié)構(gòu)形式,即當(dāng)程序執(zhí)行到某一指令后,的一種程序結(jié)構(gòu)形式,即當(dāng)程序執(zhí)行到某一指令后,根據(jù)某個(gè)條件是否滿足,分別執(zhí)行不同的指令序列根據(jù)某個(gè)條件是否滿足,分別執(zhí)行不同的指令序列。一般來說,分支程序經(jīng)常是先用一般來說,分支程序經(jīng)常是先用比較指令比較指令或或數(shù)據(jù)操作數(shù)據(jù)操作及及位檢測指令位檢測指令等來等來改變改變

52、標(biāo)志寄存器各個(gè)標(biāo)志寄存器各個(gè)標(biāo)志位標(biāo)志位。然后。然后用條件轉(zhuǎn)移指令進(jìn)行分支。用條件轉(zhuǎn)移指令進(jìn)行分支。分支程序執(zhí)行完后可以立即結(jié)束,也可以轉(zhuǎn)到公共點(diǎn)分支程序執(zhí)行完后可以立即結(jié)束,也可以轉(zhuǎn)到公共點(diǎn)結(jié)束,如下圖所示。結(jié)束,如下圖所示。分支程序可以分支程序可以再分支再分支。程序框圖:在繪制程序流程圖時(shí),需用菱形判斷框程序框圖:在繪制程序流程圖時(shí),需用菱形判斷框, ,表示判定條件。在繪制好流程圖編寫助記符程序時(shí),表示判定條件。在繪制好流程圖編寫助記符程序時(shí),建議先按上下流程線寫建議先按上下流程線寫, ,寫完上下流程線上的各框環(huán)寫完上下流程線上的各框環(huán)節(jié)后,再寫分支部分里的框框。節(jié)后,再寫分支部分里的框框

53、。循環(huán)程序循環(huán)程序循環(huán)程序是循環(huán)程序是強(qiáng)制強(qiáng)制CPUCPU重復(fù)執(zhí)行某一指令序列重復(fù)執(zhí)行某一指令序列( (程序段程序段) )的一種程序結(jié)構(gòu)形式。的一種程序結(jié)構(gòu)形式。循環(huán)結(jié)構(gòu)程序循環(huán)結(jié)構(gòu)程序縮短了程序的長度、減少了占用的內(nèi)縮短了程序的長度、減少了占用的內(nèi)存空間存空間。循環(huán)程序循環(huán)程序并不簡化程序執(zhí)行過程并不簡化程序執(zhí)行過程,相反,由于增加,相反,由于增加了一些循環(huán)控制等環(huán)節(jié),了一些循環(huán)控制等環(huán)節(jié),總的程序執(zhí)行語句和時(shí)間會(huì)總的程序執(zhí)行語句和時(shí)間會(huì)有所增加有所增加。循環(huán)程序一般由循環(huán)程序一般由4 4部分組成:部分組成:初始化、循環(huán)體、循環(huán)初始化、循環(huán)體、循環(huán)控制和循環(huán)結(jié)束處理控制和循環(huán)結(jié)束處理。循環(huán)程

54、序分為循環(huán)程序分為單循環(huán)單循環(huán)和和多重循環(huán)多重循環(huán),兩重以上循環(huán)稱,兩重以上循環(huán)稱為多重循環(huán)。為多重循環(huán)。內(nèi)外循環(huán)不能交叉。內(nèi)外循環(huán)不能交叉。循環(huán)程序循環(huán)程序循環(huán)程序各部分的內(nèi)容:循環(huán)程序各部分的內(nèi)容:(1)(1)初始化初始化建立建立循環(huán)次數(shù)計(jì)數(shù)器循環(huán)次數(shù)計(jì)數(shù)器,設(shè)定設(shè)定變量和存放數(shù)據(jù)的內(nèi)存地址指針變量和存放數(shù)據(jù)的內(nèi)存地址指針( (常用間址方式常用間址方式) )的的初值初值等。等。(2) (2) 循環(huán)體循環(huán)體實(shí)現(xiàn)程序?qū)崿F(xiàn)程序功能功能的、被的、被重復(fù)執(zhí)行重復(fù)執(zhí)行的指令序列。的指令序列。(3) (3) 循環(huán)控制循環(huán)控制修改修改變量變量和地址和地址指針指針,為下一次循環(huán)做準(zhǔn)備;修改循環(huán),為下一次循環(huán)

55、做準(zhǔn)備;修改循環(huán)計(jì)數(shù)計(jì)數(shù)器器或者判斷或者判斷循環(huán)條件循環(huán)條件是否滿足,滿足則繼續(xù)循環(huán),否則結(jié)束是否滿足,滿足則繼續(xù)循環(huán),否則結(jié)束循環(huán)。循環(huán)。(4) (4) 結(jié)束處理結(jié)束處理它主要用來分析和存放程序的結(jié)果。它主要用來分析和存放程序的結(jié)果。循環(huán)程序循環(huán)程序循環(huán)控制方式有多種,如循環(huán)控制方式有多種,如計(jì)數(shù)控制計(jì)數(shù)控制、條件控制條件控制等。等。計(jì)數(shù)控制事先已知循環(huán)次數(shù),每次循環(huán)加或減計(jì)數(shù),計(jì)數(shù)控制事先已知循環(huán)次數(shù),每次循環(huán)加或減計(jì)數(shù),通過對循環(huán)次數(shù)的判定來達(dá)到控制循環(huán)的目的;條通過對循環(huán)次數(shù)的判定來達(dá)到控制循環(huán)的目的;條件控制事先不知循環(huán)次數(shù),通過判定某種條件的真件控制事先不知循環(huán)次數(shù),通過判定某種條

56、件的真假來達(dá)到控制循環(huán)的目的。假來達(dá)到控制循環(huán)的目的。不管哪一種控制循環(huán)方式,最終都是要達(dá)到控制循不管哪一種控制循環(huán)方式,最終都是要達(dá)到控制循環(huán)的目的。環(huán)的目的。若考慮不周,會(huì)造成死循環(huán)若考慮不周,會(huì)造成死循環(huán),對這一點(diǎn),對這一點(diǎn)要注意。要注意。循環(huán)可以用跳轉(zhuǎn)語句實(shí)現(xiàn)循環(huán)可以用跳轉(zhuǎn)語句實(shí)現(xiàn),如,如JMP,JZJMP,JZ等;等;也可以用也可以用專用循環(huán)控制語句實(shí)現(xiàn)專用循環(huán)控制語句實(shí)現(xiàn),如,如LOOPLOOP、LOOPE/LOOPZLOOPE/LOOPZ、LOOPNE/LOOPNZLOOPNE/LOOPNZ子程序子程序從功能上來講,子程序是主程序的一個(gè)從功能上來講,子程序是主程序的一個(gè)組成部分組

57、成部分。為了實(shí)現(xiàn)程序的為了實(shí)現(xiàn)程序的結(jié)構(gòu)化結(jié)構(gòu)化、模塊化模塊化,提高程序的,提高程序的可重可重用性用性,通常將主程序中具有,通常將主程序中具有公用性公用性、重復(fù)性重復(fù)性、功能功能相對獨(dú)立和完整相對獨(dú)立和完整的一個(gè)程序段,單獨(dú)設(shè)計(jì)成一個(gè)程的一個(gè)程序段,單獨(dú)設(shè)計(jì)成一個(gè)程序模塊,供主程序調(diào)用,該程序模塊就稱為子程序。序模塊,供主程序調(diào)用,該程序模塊就稱為子程序。子程序可以嵌套。子程序可以嵌套。子程序子程序子程序調(diào)用與返回子程序調(diào)用與返回 子程序調(diào)用與返回由子程序調(diào)用與返回由CALLCALL和和RETRET指令實(shí)現(xiàn)。指令實(shí)現(xiàn)。 子程序調(diào)用方式有子程序調(diào)用方式有近程近程( (段內(nèi)段內(nèi)) )調(diào)用、調(diào)用、遠(yuǎn)

58、程遠(yuǎn)程( (段間段間) )調(diào)用調(diào)用、直接、直接調(diào)用調(diào)用( (指令中直接給出調(diào)用地址指令中直接給出調(diào)用地址) )和和間接間接調(diào)用調(diào)用( (用寄存器或內(nèi)存用寄存器或內(nèi)存單元給出調(diào)用地址單元給出調(diào)用地址) )。 子程序調(diào)用實(shí)際是程序的子程序調(diào)用實(shí)際是程序的轉(zhuǎn)移轉(zhuǎn)移,但與轉(zhuǎn)移指令有所不同:,但與轉(zhuǎn)移指令有所不同:n子程序調(diào)用指令子程序調(diào)用指令CALLCALL執(zhí)行時(shí)要執(zhí)行時(shí)要保存返回地址保存返回地址、將其壓入堆、將其壓入堆棧,每個(gè)子程序都有棧,每個(gè)子程序都有RETRET指令負(fù)責(zé)把壓入棧區(qū)的指令負(fù)責(zé)把壓入棧區(qū)的返回地址返回地址彈出送彈出送IPIP或或CSIPCSIP( (段間返回段間返回) ),實(shí)現(xiàn)子程序

59、返回。,實(shí)現(xiàn)子程序返回。n轉(zhuǎn)移指令不考慮返回問題。轉(zhuǎn)移指令不考慮返回問題。 . . . . CALL F1CALL F1;將下條指令的地址壓入堆棧;將下條指令的地址壓入堆棧 . .F1 PROCF1 PROC . . . . RETRET;將堆棧中的地址彈出到;將堆棧中的地址彈出到CS:IPCS:IP中中F1 ENDPF1 ENDP宏匯編語言的基本語法宏匯編語言的基本語法偽指令的概念:偽指令的概念: 偽指令本身不產(chǎn)生對應(yīng)的機(jī)器目標(biāo)代碼,其作用是向匯編程偽指令本身不產(chǎn)生對應(yīng)的機(jī)器目標(biāo)代碼,其作用是向匯編程序提供匯編所需要的某些信息,為匯編語言源程序設(shè)計(jì)提供序提供匯編所需要的某些信息,為匯編語言源

60、程序設(shè)計(jì)提供方便。方便。偽指令語句格式:偽指令語句格式:常數(shù)、變量和標(biāo)號:常數(shù)、變量和標(biāo)號: 常數(shù)、變量和標(biāo)號是匯編語言能識別的數(shù)據(jù)項(xiàng),它是指令和常數(shù)、變量和標(biāo)號是匯編語言能識別的數(shù)據(jù)項(xiàng),它是指令和偽指令語句中操作數(shù)的基本組成部分。一個(gè)數(shù)據(jù)項(xiàng)往往包含偽指令語句中操作數(shù)的基本組成部分。一個(gè)數(shù)據(jù)項(xiàng)往往包含數(shù)值和屬性兩部分,這兩部分對于一條語句匯編成機(jī)器目標(biāo)數(shù)值和屬性兩部分,這兩部分對于一條語句匯編成機(jī)器目標(biāo)代碼都有直接關(guān)系。代碼都有直接關(guān)系。1.1.符號定義偽指令(賦值語句):符號定義偽指令(賦值語句):(1 1) EQU EQU (2 2) = = 該語句把表達(dá)式的值賦給符號名,在同一程序中,用

溫馨提示

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

最新文檔

評論

0/150

提交評論