版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1第第2章章微處理器與總線微處理器與總線韋韋 耿耿wei_河海大學計算機與信息學院河海大學計算機與信息學院2 主要內(nèi)容:主要內(nèi)容:(1) 微型機的基本結(jié)構(gòu);微型機的基本結(jié)構(gòu);(2) 8088(8086)微處理器的工作)微處理器的工作 原理、引線及結(jié)構(gòu);原理、引線及結(jié)構(gòu);(3) 總線的一般概念。總線的一般概念。32.1 微型機的基本結(jié)構(gòu)微型機的基本結(jié)構(gòu)微機系統(tǒng)的基本組成微機系統(tǒng)的基本組成微型機的工作原理微型機的工作原理4 微機系統(tǒng)的組成微機系統(tǒng)的組成5微處理器、微型計算機和微型計算微處理器、微型計算機和微型計算機系統(tǒng)三者之間有什么不同?機系統(tǒng)三者之間有什么不同?(1)三者不同三者不同,微處理器是
2、微型計算機的一個,微處理器是微型計算機的一個 組成部分,而微型計算機又是微型計算機組成部分,而微型計算機又是微型計算機 系統(tǒng)的一個組成部分。系統(tǒng)的一個組成部分。(2)微處理器微處理器:運算器、控制器及寄存器組;:運算器、控制器及寄存器組; 微型計算機微型計算機:由微處理器、存儲器、輸入:由微處理器、存儲器、輸入/ 輸出接口電路和系統(tǒng)總線構(gòu)成的輸出接口電路和系統(tǒng)總線構(gòu)成的 裸機系統(tǒng);裸機系統(tǒng); 微型計算機系統(tǒng)微型計算機系統(tǒng):微型計算機、系統(tǒng)軟件和:微型計算機、系統(tǒng)軟件和 外設(shè)。外設(shè)。6微型計算機的系統(tǒng)結(jié)構(gòu)框圖微型計算機的系統(tǒng)結(jié)構(gòu)框圖總線結(jié)構(gòu)總線結(jié)構(gòu)7微型計算機的結(jié)構(gòu)微型計算機的結(jié)構(gòu) 微處理器(微
3、處理器(CPU) 存儲器存儲器 輸入輸入/輸出接口輸出接口 總線總線1. 硬件系統(tǒng)硬件系統(tǒng)81)微處理器微處理器 微處理器簡稱微處理器簡稱CPU,是計算機的核是計算機的核心,主要包括:心,主要包括: 運算器運算器 控制器控制器 寄存器組寄存器組9 運算器運算器算術(shù)邏輯單元算術(shù)邏輯單元ALU: 加法器:加、減、乘、除加法器:加、減、乘、除 邏輯運算功能部件:與、或、非、異或邏輯運算功能部件:與、或、非、異或通用或?qū)S眉拇嫫鹘M:通用或?qū)S眉拇嫫鹘M: 提供操作數(shù)和暫存中間運算結(jié)果及結(jié)果提供操作數(shù)和暫存中間運算結(jié)果及結(jié)果 特征特征內(nèi)部總線:內(nèi)部總線: 數(shù)據(jù)傳輸通道數(shù)據(jù)傳輸通道10 組成:組成: 程序計
4、數(shù)器、指令寄存器程序計數(shù)器、指令寄存器指令譯碼指令譯碼 器、時序控制部件,微操作控制部件器、時序控制部件,微操作控制部件 功能:功能: 1、指令控制、指令控制 2、時序控制、時序控制 3、操作控制、操作控制 4、處理對異常情況及某些外部請求、處理對異常情況及某些外部請求 控制器11 寄存器組 CPU內(nèi)部的若干個內(nèi)部的若干個存儲單元存儲單元;分為專用寄存器和通用寄存器;分為專用寄存器和通用寄存器; 專用寄存器專用寄存器:其作用是固定的:其作用是固定的,如如 SP、FLAGS 。 通用寄存器通用寄存器:如:如AXBX等由程序員等由程序員 規(guī)定其用途。規(guī)定其用途。122)存儲器)存儲器 定義定義:存
5、儲器又叫內(nèi)存或主存:存儲器又叫內(nèi)存或主存,是是微型計算機的存儲和記憶部件。微型計算機的存儲和記憶部件。 作用作用:存放計算機工作過程中需要:存放計算機工作過程中需要操作的數(shù)據(jù)和當前執(zhí)行的程序。操作的數(shù)據(jù)和當前執(zhí)行的程序。13 注意區(qū)分:注意區(qū)分:內(nèi)存單元的地址和內(nèi)容內(nèi)存單元的地址和內(nèi)容 地址地址:每個單元都對應一個編號,以每個單元都對應一個編號,以實現(xiàn)對單元內(nèi)容的尋址實現(xiàn)對單元內(nèi)容的尋址 內(nèi)存單元的內(nèi)容內(nèi)存單元的內(nèi)容: :內(nèi)存單元中存放的內(nèi)存單元中存放的信息信息 1011011038F04H內(nèi)存地址內(nèi)存地址單元內(nèi)容單元內(nèi)容14 指標:指標:內(nèi)存容量內(nèi)存容量 內(nèi)存所含存儲單元的個數(shù),以字節(jié)內(nèi)存所
6、含存儲單元的個數(shù),以字節(jié)為單位為單位 內(nèi)存容量的大小依內(nèi)存容量的大小依CPU的尋址范圍的尋址范圍而定(即而定(即CPU地址信號線的位數(shù))地址信號線的位數(shù))15 內(nèi)存操作內(nèi)存操作 讀:將內(nèi)存單元的內(nèi)容取入讀:將內(nèi)存單元的內(nèi)容取入CPU, 原單元內(nèi)容不改變原單元內(nèi)容不改變 寫:寫:CPU將信息放入內(nèi)存單元,單將信息放入內(nèi)存單元,單 元中原來的內(nèi)容被覆蓋元中原來的內(nèi)容被覆蓋16存儲器讀操作過程存儲器讀操作過程CPU讀地址讀地址05H內(nèi)存單元中的內(nèi)容的過程內(nèi)存單元中的內(nèi)容的過程(1)(2)(3)17存儲器讀操作過程存儲器讀操作過程CPU把把00100110B寫入地址為寫入地址為08H的單元的單元(1)
7、(2)(3)18 內(nèi)存儲器的分類內(nèi)存儲器的分類 隨機存取存儲器(隨機存取存儲器(RAM) 按工作方按工作方 式可分為式可分為 只讀存儲器(只讀存儲器(ROM)193)輸入)輸入/輸出接口輸出接口輸入輸入/ /輸出接口是微型計算機的輸出接口是微型計算機的 重要組成部分重要組成部分接口是接口是CPUCPU與外部設(shè)備間的橋梁與外部設(shè)備間的橋梁CPUI/O接口接口外設(shè)外設(shè)20 接口的分類:接口的分類: 串行接口串行接口 輸入接口輸入接口 并行接口并行接口 輸出接口輸出接口21 接口的功能接口的功能 數(shù)據(jù)緩沖寄存數(shù)據(jù)緩沖寄存 信號電平或類型的轉(zhuǎn)換信號電平或類型的轉(zhuǎn)換 實現(xiàn)主機與外設(shè)間的運行匹配實現(xiàn)主機與
8、外設(shè)間的運行匹配224)總線)總線總線總線:是一組信號線的集合,是在計算機系:是一組信號線的集合,是在計算機系 統(tǒng)各部件之間傳輸?shù)刂贰?shù)據(jù)和控制統(tǒng)各部件之間傳輸?shù)刂?、?shù)據(jù)和控制 信息公共通路。信息公共通路。內(nèi)部總線內(nèi)部總線:位于芯片內(nèi)部的總線。:位于芯片內(nèi)部的總線。系統(tǒng)總線系統(tǒng)總線:連接微處理器與存儲器、輸入輸:連接微處理器與存儲器、輸入輸 出接口,用以構(gòu)成完整的微型計算機出接口,用以構(gòu)成完整的微型計算機 的總線的總線 (外部總線外部總線) 。分類分類:數(shù)據(jù)總線、地址總線和控制總線。:數(shù)據(jù)總線、地址總線和控制總線。23數(shù)據(jù)總線數(shù)據(jù)總線:用于傳送數(shù)據(jù)信息,實現(xiàn)微處:用于傳送數(shù)據(jù)信息,實現(xiàn)微處 理
9、器、存儲器和理器、存儲器和I/O接口之間的數(shù)據(jù)接口之間的數(shù)據(jù) 交換。數(shù)據(jù)總線是雙向總線,數(shù)據(jù)可交換。數(shù)據(jù)總線是雙向總線,數(shù)據(jù)可 在兩個方向上傳輸。在兩個方向上傳輸。 地址總線地址總線:用于發(fā)送內(nèi)存地址和:用于發(fā)送內(nèi)存地址和I/O接口接口 的地址,是單項總線。的地址,是單項總線。 控制總線控制總線:則傳送各種控制信號和狀態(tài):則傳送各種控制信號和狀態(tài) 信號,使微型計算機各部件協(xié)調(diào)工作。信號,使微型計算機各部件協(xié)調(diào)工作。 每一根是單向的,但整體是雙向的。每一根是單向的,但整體是雙向的。242.2.軟件系統(tǒng)軟件系統(tǒng) 軟件:為運行、管理和維護計算機軟件:為運行、管理和維護計算機系統(tǒng)或為實現(xiàn)某一功能而編寫
10、的各系統(tǒng)或為實現(xiàn)某一功能而編寫的各種程序的總和及其相關(guān)資料。種程序的總和及其相關(guān)資料。系統(tǒng)軟件系統(tǒng)軟件應用軟件應用軟件操作系統(tǒng)操作系統(tǒng)系統(tǒng)實用程序系統(tǒng)實用程序軟件軟件編譯程序編譯程序匯編程序匯編程序數(shù)據(jù)庫數(shù)據(jù)庫調(diào)試程序調(diào)試程序工具軟件工具軟件25 程序設(shè)計語言程序設(shè)計語言機器語言機器語言:計算機直接執(zhí)行的二進:計算機直接執(zhí)行的二進 制形式的程序。制形式的程序。 匯編語言匯編語言:助記符語言表示的程序。:助記符語言表示的程序。 高級語言高級語言:不依賴于具體機型的不依賴于具體機型的程程 序設(shè)計語言。序設(shè)計語言。26 微型計算機系統(tǒng)結(jié)構(gòu)微型計算機系統(tǒng)結(jié)構(gòu) 馮馮 諾依曼結(jié)構(gòu)諾依曼結(jié)構(gòu) 哈佛結(jié)構(gòu)哈佛結(jié)
11、構(gòu)27馮馮 諾依曼機的特點:諾依曼機的特點: 將計算過程描述為由許多條指令按一定將計算過程描述為由許多條指令按一定順序組成的程序,并放在存儲器保存順序組成的程序,并放在存儲器保存 指令按其在存儲器中存放的順序執(zhí)行指令按其在存儲器中存放的順序執(zhí)行 由控制器控制整個程序和數(shù)據(jù)的存取以由控制器控制整個程序和數(shù)據(jù)的存取以及程序的執(zhí)行及程序的執(zhí)行 以運算器為核心,所有的執(zhí)行都經(jīng)過運以運算器為核心,所有的執(zhí)行都經(jīng)過運算器算器28馮馮 諾依曼計算機結(jié)構(gòu)諾依曼計算機結(jié)構(gòu)29每臺計算機都有各種類型的機器指令,每臺計算機都有各種類型的機器指令,這些指令按照這些指令按照一定的規(guī)則一定的規(guī)則存放在存儲器存放在存儲器中
12、,在中央控制系統(tǒng)的中,在中央控制系統(tǒng)的統(tǒng)一控制統(tǒng)一控制下,按下,按一定順序一定順序依次取出執(zhí)行,這就是依次取出執(zhí)行,這就是馮諾依馮諾依曼的核心原理曼的核心原理,即,即存儲程序的工作原理存儲程序的工作原理。馮馮 諾依曼計算機的核心原理諾依曼計算機的核心原理30存儲程序存儲程序: :是指把程序和數(shù)據(jù)送到具有記憶能力的是指把程序和數(shù)據(jù)送到具有記憶能力的存儲器中保存起來,計算機工作時只要存儲器中保存起來,計算機工作時只要給出程序中第一條指令的地址,控制器給出程序中第一條指令的地址,控制器就可依據(jù)存儲程序的指令順序地、周而就可依據(jù)存儲程序的指令順序地、周而復始地取出指令、分析指令、執(zhí)行指令,復始地取出指
13、令、分析指令、執(zhí)行指令,直到執(zhí)行完全部指令為止直到執(zhí)行完全部指令為止。31 指令指令:一條基本操作命令稱為一條機器指令。指:一條基本操作命令稱為一條機器指令。指 令是對計算機發(fā)出的一條條工作命令,命令它執(zhí)令是對計算機發(fā)出的一條條工作命令,命令它執(zhí) 行規(guī)定的操作。機器指令必須滿足兩個條件:行規(guī)定的操作。機器指令必須滿足兩個條件: a、機器指令的形式必須是計算機能夠理解的,必、機器指令的形式必須是計算機能夠理解的,必 須使用二進制數(shù)字編碼形式表示。須使用二進制數(shù)字編碼形式表示。 b、機器指令規(guī)定的操作必須是計算機能夠執(zhí)行的。、機器指令規(guī)定的操作必須是計算機能夠執(zhí)行的。 必須有硬件支持。必須有硬件支
14、持。 指令系統(tǒng)指令系統(tǒng):應用于某種:應用于某種CPU的機器指令及其使用的機器指令及其使用 規(guī)則的集合。指令系統(tǒng)決定了計算機的能力,也規(guī)則的集合。指令系統(tǒng)決定了計算機的能力,也 影響著計算機的結(jié)構(gòu)。影響著計算機的結(jié)構(gòu)。 程序程序:是實現(xiàn)某種任務的指令序列。:是實現(xiàn)某種任務的指令序列。32 程序中的指令必須采用二進制編程序中的指令必須采用二進制編 碼,和數(shù)據(jù)一樣進行存儲。碼,和數(shù)據(jù)一樣進行存儲。 程序中的指令必須屬于執(zhí)行程序程序中的指令必須屬于執(zhí)行程序 的計算機的指令系統(tǒng)。的計算機的指令系統(tǒng)。33微型計算機的工作過程微型計算機的工作過程計算機執(zhí)行程序示意圖計算機執(zhí)行程序示意圖34指令執(zhí)行的兩個基本
15、階段指令執(zhí)行的兩個基本階段 取指令階段取指令階段 由一系列相同的操作組成。取指令階由一系列相同的操作組成。取指令階 段的時間總是相等的。段的時間總是相等的。 執(zhí)行指令階段執(zhí)行指令階段 由不同的事件順序組成,它取決于被由不同的事件順序組成,它取決于被 執(zhí)行指令的類型。執(zhí)行指令的類型。微機工作過程就是不斷地取指令和執(zhí)行指令微機工作過程就是不斷地取指令和執(zhí)行指令的過程。的過程。35一個程序工作的例子一個程序工作的例子例例:求:求 5+4=?計算步驟計算步驟:一個計算步驟完成一個基本操作(如取數(shù)、:一個計算步驟完成一個基本操作(如取數(shù)、 加法、存數(shù)、打印輸出等)加法、存數(shù)、打印輸出等)計算程序:計算程
16、序:是由完成某一特定任務的一組指令所組成。是由完成某一特定任務的一組指令所組成。指令必須提供的信息指令必須提供的信息: a、執(zhí)行什么樣的操作、執(zhí)行什么樣的操作 b、參與操作的對象即數(shù)據(jù)是什么或地址是什么。、參與操作的對象即數(shù)據(jù)是什么或地址是什么。注意區(qū)分:注意區(qū)分: a、存儲單元的地址、存儲單元的地址 b、存儲單元的內(nèi)容、存儲單元的內(nèi)容36指令在內(nèi)存中的存放形式指令在內(nèi)存中的存放形式 37在微機中在微機中a、所有操作都是用二進制代碼進行編碼的;、所有操作都是用二進制代碼進行編碼的;b、數(shù)據(jù)用二進制表示,且存放在存儲器的預定地址、數(shù)據(jù)用二進制表示,且存放在存儲器的預定地址 的存儲單元中。的存儲單
17、元中。 本例編碼后本例編碼后00000100:取數(shù)操作的操作碼,地址:取數(shù)操作的操作碼,地址:0000010100000010:加法操作:加法操作 地址:地址:0000011100000101:存數(shù)操作:存數(shù)操作 地址:地址:0000100100001000:打印輸出操作,:打印輸出操作, 地址:地址:00001011 00000101:原始數(shù)據(jù):原始數(shù)據(jù)“5”, 地址:地址:0000000100000100:原始數(shù)據(jù):原始數(shù)據(jù)“4”, 地址:地址:0000001038 計算機執(zhí)行指令的過程計算機執(zhí)行指令的過程 39(1) 執(zhí)行程序時,給程序計數(shù)器執(zhí)行程序時,給程序計數(shù)器PC賦以第一條賦以第一
18、條 指令的地址指令的地址05H,就進入第一條指令的取指就進入第一條指令的取指 階段,具體過程如下:階段,具體過程如下: 將將PC的內(nèi)容的內(nèi)容05H送至地址寄存器送至地址寄存器AR。 當當PC的內(nèi)容可靠地送入地址寄存器的內(nèi)容可靠地送入地址寄存器AR 后,后,PC的內(nèi)容加的內(nèi)容加1變?yōu)樽優(yōu)?6H。 地址寄存器地址寄存器AR把地址號把地址號05H通過地址總通過地址總 線線AB送至存儲器。經(jīng)地址譯碼器譯碼,送至存儲器。經(jīng)地址譯碼器譯碼, 選中選中05H號單元。號單元。 CPU給出讀命令至存儲器。給出讀命令至存儲器。 將將05H單元的內(nèi)容單元的內(nèi)容04H()(指令操作碼)指令操作碼) 讀至數(shù)據(jù)總線讀至數(shù)
19、據(jù)總線DB上。上。40 讀出的內(nèi)容讀出的內(nèi)容04H經(jīng)過數(shù)據(jù)總線經(jīng)過數(shù)據(jù)總線DB送至數(shù)送至數(shù) 據(jù)寄存器據(jù)寄存器DR。 因是取指階段,取出的為指令操作碼,因是取指階段,取出的為指令操作碼, 故故DR將其送至指令寄存器將其送至指令寄存器IR,然后經(jīng)過然后經(jīng)過 譯碼分析發(fā)出執(zhí)行這條指令的各種控制譯碼分析發(fā)出執(zhí)行這條指令的各種控制 信號。信號。 (2) 取指階段完成后,轉(zhuǎn)入了執(zhí)行第一條指令的取指階段完成后,轉(zhuǎn)入了執(zhí)行第一條指令的 階段。經(jīng)過譯碼分析,知道這是一條從內(nèi)存階段。經(jīng)過譯碼分析,知道這是一條從內(nèi)存 單元取操作數(shù)的指令,接下去要先從指令的單元取操作數(shù)的指令,接下去要先從指令的 第二字節(jié)獲取操作數(shù)地
20、址,然后再從中讀取第二字節(jié)獲取操作數(shù)地址,然后再從中讀取 數(shù)據(jù)。數(shù)據(jù)。 PC的內(nèi)容的內(nèi)容06H送至地址寄存器送至地址寄存器AR。41取取指令操作數(shù)地址示意圖指令操作數(shù)地址示意圖42 當當PC的內(nèi)容可靠地送入地址寄存器的內(nèi)容可靠地送入地址寄存器AR 后,后,PC的內(nèi)容加的內(nèi)容加1變?yōu)樽優(yōu)?7H。 地址寄存器地址寄存器AR把地址號把地址號06H通過地址總通過地址總 線線AB送至存儲器。經(jīng)地址譯碼器譯碼,送至存儲器。經(jīng)地址譯碼器譯碼, 選中選中06H號單元。號單元。 CPU給出讀命令至存儲器。給出讀命令至存儲器。 所選中的所選中的06H單元的內(nèi)容單元的內(nèi)容01H(操作數(shù)地操作數(shù)地 址)讀至數(shù)據(jù)總線址
21、)讀至數(shù)據(jù)總線DB上。上。 讀出的內(nèi)容讀出的內(nèi)容01H經(jīng)過數(shù)據(jù)總線經(jīng)過數(shù)據(jù)總線DB送至數(shù)送至數(shù) 據(jù)寄存器據(jù)寄存器DR。 因讀出的因讀出的01H為操作數(shù)地址,所以在控制為操作數(shù)地址,所以在控制 器的控制下將器的控制下將DR內(nèi)容送往地址寄存器內(nèi)容送往地址寄存器AR432.2 8088/8086微處理器微處理器主要內(nèi)容:主要內(nèi)容: 8088CPU外部引線及功能外部引線及功能 8088CPU的內(nèi)部結(jié)構(gòu)和特點的內(nèi)部結(jié)構(gòu)和特點 各內(nèi)部寄存器的功能各內(nèi)部寄存器的功能 8088的工作時序的工作時序448088和和8086的異同的異同不相同:不相同:(1)外部數(shù)據(jù)總線位數(shù)的差別:外部數(shù)據(jù)總線位數(shù)的差別: 808
22、6CPU有有16位,在一個總線周期內(nèi)可輸入位,在一個總線周期內(nèi)可輸入/輸出一個字輸出一個字 (16位數(shù)據(jù)位數(shù)據(jù)),系統(tǒng)處理數(shù)據(jù),系統(tǒng)處理數(shù)據(jù)/對中斷響應的速度快;對中斷響應的速度快; 8088 CPU有有8位,準位,準16位處理器。位處理器。(2)指令隊列容量的差別:指令隊列容量的差別: 8086CPU的指令隊列可容納的指令隊列可容納6個字節(jié),且在每個總線周個字節(jié),且在每個總線周 期中從存儲器中取出期中從存儲器中取出2個字節(jié)的指令代碼填入指令隊個字節(jié)的指令代碼填入指令隊 列,這可提高取指操作和其它操作的并行率,從而列,這可提高取指操作和其它操作的并行率,從而 提高系統(tǒng)工作速度;提高系統(tǒng)工作速度
23、; 8088指令隊列只能容納指令隊列只能容納 4個字節(jié),且在每個總線周期中只個字節(jié),且在每個總線周期中只 能取一個字節(jié)的指令代碼,從而增長了總線取指令能取一個字節(jié)的指令代碼,從而增長了總線取指令 的時間,在一定條件下可能影響取指令操作和其它的時間,在一定條件下可能影響取指令操作和其它 操作的并行率。操作的并行率。458088和和8086的異同的異同不相同:不相同:(3)引腳特性的差別引腳特性的差別:兩種:兩種CPU的引腳功能是相同的,的引腳功能是相同的, 但有以下幾點不同:但有以下幾點不同: a. AD15AD0的定義不同的定義不同:在:在8086中都定義為地中都定義為地 址址/數(shù)據(jù)復用總線;
24、而在數(shù)據(jù)復用總線;而在 8088中,由于只需用中,由于只需用8 條數(shù)據(jù)總線,因此,對應予條數(shù)據(jù)總線,因此,對應予8086的的AD15AD8 這這8條引腳,只作地址線使用。條引腳,只作地址線使用。 b.34號引腳的定義不同號引腳的定義不同:在:在8086中定義為中定義為BHE信信 號;而在號;而在8088中定義為中定義為SS0,它與,它與DT/R,IO/M 一起用作最小方式下的周期狀態(tài)信號。一起用作最小方式下的周期狀態(tài)信號。 c.28號引腳的相位不同號引腳的相位不同: 在在8086中為中為M/IO;而在;而在 8088中被倒相,改為中被倒相,改為IO/M,以便與,以便與8080/8085 系統(tǒng)的
25、總線結(jié)構(gòu)兼容。系統(tǒng)的總線結(jié)構(gòu)兼容。 468088和和8086的異同的異同相同:相同:(1)類似的體系結(jié)構(gòu);類似的體系結(jié)構(gòu);(2)內(nèi)部結(jié)構(gòu)基本相同;內(nèi)部結(jié)構(gòu)基本相同;(3)執(zhí)行部件執(zhí)行部件EU完全相同;完全相同;(4)指令系統(tǒng)及尋址能力,程序的編制及指令系統(tǒng)及尋址能力,程序的編制及 設(shè)計方法都相同;設(shè)計方法都相同;所以兩種所以兩種CPU完全兼容。完全兼容。 471.8088/8086的指令流水線的指令流水線執(zhí)行程序時,執(zhí)行程序時,CPU重復執(zhí)行:重復執(zhí)行:(1)從存儲器取出下一條指令;從存儲器取出下一條指令;(2)指令譯碼指令譯碼(或指令分析或指令分析);(3)如果指令需要,從存儲器讀取操作數(shù);
26、如果指令需要,從存儲器讀取操作數(shù);(4)執(zhí)行指令執(zhí)行指令(包括算術(shù)邏輯運算、包括算術(shù)邏輯運算、I/O操作、操作、 數(shù)據(jù)傳送、控制轉(zhuǎn)移等數(shù)據(jù)傳送、控制轉(zhuǎn)移等);(5)如果需要,將結(jié)果寫入存儲器。如果需要,將結(jié)果寫入存儲器。8088/8086CPU的特點的特點執(zhí)行單元執(zhí)行單元(EU)和總線接口單元和總線接口單元(BIU)48 指令執(zhí)行部件指令執(zhí)行部件 EU:負責執(zhí)行指令負責執(zhí)行指令 總線接口部件總線接口部件BIU:負責取指令、取操作負責取指令、取操作 數(shù)和寫結(jié)果。數(shù)和寫結(jié)果。執(zhí)行執(zhí)行1 1執(zhí)行執(zhí)行2 2存結(jié)果存結(jié)果 取指取指2 2取指取指1 1執(zhí)行執(zhí)行3 3取數(shù)取數(shù)取數(shù)取數(shù)取指取指3 3忙碌忙碌忙
27、碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌忙碌EUBIUBUS49EU和和BIU并行操作的實現(xiàn)并行操作的實現(xiàn): BIU內(nèi)部的指令隊列內(nèi)部的指令隊列指令隊列的作用:指令隊列的作用:使得使得8086/8088的的EU和和BIU能夠并行的工作,能夠并行的工作,從而減少了從而減少了CPU為取指令而等待的時間,為取指令而等待的時間,提高了提高了CPU的執(zhí)行效率和運行速度,另外的執(zhí)行效率和運行速度,另外也降低了對存儲器存取速度的要求也降低了對存儲器存取速度的要求50指令流水線技術(shù)指令流水線技術(shù) 一般情況下,一般情況下,CPU執(zhí)行完一條指執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,稱為令就可以立即執(zhí)行下一條指令,稱為流
28、水線技術(shù)流水線技術(shù),減少了,減少了CPU為取指令而為取指令而等待的時間,從而提高了等待的時間,從而提高了CPU的效率。的效率。512.內(nèi)存的分段管理技術(shù)內(nèi)存的分段管理技術(shù)8086/8088CPU的內(nèi)部是的內(nèi)部是16位,產(chǎn)生位,產(chǎn)生216=64K個地址。個地址。如何提高尋址能力?如何實現(xiàn)對更大如何提高尋址能力?如何實現(xiàn)對更大(如如220) 空間的尋址?空間的尋址?分段管理方法分段管理方法8088/8086CPU的特點的特點52分段管理方法分段管理方法 將內(nèi)存空間分為多個邏輯段,每個邏輯將內(nèi)存空間分為多個邏輯段,每個邏輯段最大為段最大為64K個單元,段內(nèi)每個單元的地址個單元,段內(nèi)每個單元的地址碼碼
29、(偏移地址或相對地址偏移地址或相對地址)長度為長度為16位,滿足位,滿足其其16位內(nèi)部結(jié)構(gòu)的要求;再為每個段設(shè)置段位內(nèi)部結(jié)構(gòu)的要求;再為每個段設(shè)置段地址地址(也稱段基地址也稱段基地址),以區(qū)分不同的邏輯段。,以區(qū)分不同的邏輯段。內(nèi)存單元的地址為段地址和段內(nèi)偏移地址。內(nèi)存單元的地址為段地址和段內(nèi)偏移地址。段寄存器:專門存放段地址段寄存器:專門存放段地址地址寄存器:專門存放偏移地址地址寄存器:專門存放偏移地址8088/8086CPU的特點的特點533.支持多處理器系統(tǒng)支持多處理器系統(tǒng)有有最小模式最小模式和和最大模式最大模式兩種工作模式。兩種工作模式。最小模式最小模式:單處理機系統(tǒng),:單處理機系統(tǒng),
30、CPU直接直接產(chǎn)生系統(tǒng)控制總線信號。產(chǎn)生系統(tǒng)控制總線信號。最大模式最大模式:多處理器模式,總線控制:多處理器模式,總線控制器提供所有總線控制信號和命令信號器提供所有總線控制信號和命令信號8088/8086CPU的特點的特點54 總結(jié):總結(jié):8088/8086 CPU的特點的特點 采用并行流水線工作方式采用并行流水線工作方式 通過設(shè)置通過設(shè)置指令預取隊列指令預取隊列實現(xiàn)實現(xiàn) 對內(nèi)存空間實行分段管理:對內(nèi)存空間實行分段管理: 將內(nèi)存分為將內(nèi)存分為4個段個段并設(shè)置地址段寄并設(shè)置地址段寄 存器,以實現(xiàn)對存器,以實現(xiàn)對1MB空間的尋址空間的尋址 支持多處理器系統(tǒng)支持多處理器系統(tǒng)55 8088工作模式:最
31、小模式和最大模式。工作模式:最小模式和最大模式。(1)最小模式:最小模式:MN/MX=1 單處理機單處理機模式;模式; 控制信號控制信號較少,一般可不必接總線控制;較少,一般可不必接總線控制; 只包括一個只包括一個處理器處理器8088; 系統(tǒng)總線系統(tǒng)總線由由8088的引線直接引出形成。的引線直接引出形成。(2)最大模式:最大模式:MN/MX=0 多處理機多處理機模式;模式; 控制信號控制信號多,須通過總線控制器與總線相連;多,須通過總線控制器與總線相連; 處理器處理器8088和其他的處理器;和其他的處理器; 系統(tǒng)總線系統(tǒng)總線由由8088和總線控制器共同產(chǎn)生。和總線控制器共同產(chǎn)生。8088的外部
32、引腳和功能的外部引腳和功能56引腳定義的方法可大致分為引腳定義的方法可大致分為: 每個引腳只傳送一種信息每個引腳只傳送一種信息(RD等等) 引腳電平的高低不同的信號引腳電平的高低不同的信號(IO/M等等) CPU工作于不同方式有不同的名稱和工作于不同方式有不同的名稱和定義定義(WR/LOCK 等等) 分時復用引腳分時復用引腳(AD7AD0 等等); 引腳的輸入和輸出分別傳送不同的信引腳的輸入和輸出分別傳送不同的信息息(RQ/GT等等) 。5712345678910111213141516171819204039383736353433323130292827262524232221 GND A
33、D14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GNDVCC +5VAD15A16 / S3A17 / S4A18 / S5A19 / S6BHE/S7 MN / MXRDHOLD HLDA WRM / IO DT / R DEN ALEINTATESTREADYRESET80868086 CPU 引腳12345678910111213141516171819204039383736353433323130292827262524232221 GND A14 A13 A12 A11 A10
34、 A9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GNDVCC +5VA15A16 / S3A17 / S4A18 / S5A19 / S6SS0 MN / MXRDHOLD HLDA WRM / IO DT / R DEN ALEINTATESTREADYRESET80888088 CPU 引腳58主要引線主要引線(最小模式最小模式)8088是工作在最小還是最大模式由是工作在最小還是最大模式由MN/MX端狀態(tài)決定。端狀態(tài)決定。MN/MX=0工作于最大模式,工作于最大模式,反之工作于最小模式。反之工作于最小模式。 AD7AD0: 低低8位
35、地址和數(shù)據(jù)信號分時復位地址和數(shù)據(jù)信號分時復 用。在傳送地址信號時為單用。在傳送地址信號時為單 向,傳送數(shù)據(jù)信號時為雙向。向,傳送數(shù)據(jù)信號時為雙向。 A19 A16: 高高4位地址信號,分時復用。位地址信號,分時復用。 A15 A8 : 輸出輸出8位地址信號。位地址信號。59主要的控制和狀態(tài)信號主要的控制和狀態(tài)信號 WR: 寫信號寫信號 RD: 讀信號讀信號 IO/M: 為為“0”表示訪問內(nèi)存表示訪問內(nèi)存 為為“1”表示訪問接口表示訪問接口 DEN: 低電平有效時,允許進行讀低電平有效時,允許進行讀/寫寫 操作操作 RESET:復位信號復位信號60例例: 當當WR=1,RD=0,IO/M=0時,
36、時, 表示表示CPU當前正在進行讀存儲器當前正在進行讀存儲器 操作操作61READY信號:信號:T1T2T3TwaitT462中斷請求和響應信號中斷請求和響應信號 INTR:可屏蔽中斷請求輸入端可屏蔽中斷請求輸入端 NMI:非屏蔽中斷請求輸入端非屏蔽中斷請求輸入端 INTA:中斷響應輸出端中斷響應輸出端63總線保持信號總線保持信號 HOLD:總線保持請求信號輸入端。當總線保持請求信號輸入端。當 CPU以外的其他設(shè)備要求占用以外的其他設(shè)備要求占用 總線時,通過該引腳向總線時,通過該引腳向CPU發(fā)發(fā) 出請求出請求 HLDA:總線保持響應信號輸出端??偩€保持響應信號輸出端。 CPU對對HOLD信號的
37、響應信號信號的響應信號648088CPU的功能結(jié)構(gòu)的功能結(jié)構(gòu) 8088內(nèi)部由兩部分組成:內(nèi)部由兩部分組成: 執(zhí)行單元(執(zhí)行單元(EU) 總線接口單元(總線接口單元(BIU)658086 總線 地址總線(20 位) ALU 數(shù)據(jù)總線(16 位) 地址加法器 隊列總線 指令隊列 總線接口部件(BIU) 1 2 3 4 5 6 C S I P 內(nèi)部通信寄存器 總線 控制 邏輯 數(shù)據(jù)總線 暫 存 器 A L U 標志寄存器 E U 控制器 指令執(zhí)行部件(EU) (16 位) (8 位) 通 用 寄 存 器 E S D S S S AX BX CX DX B P S P S I D I AH AL BH
38、 BL CH CL DH DL 8088處理器內(nèi)部結(jié)構(gòu)處理器內(nèi)部結(jié)構(gòu)66執(zhí)行單元執(zhí)行單元 功能功能 指令的執(zhí)行指令的執(zhí)行 從指令隊列中取指令代碼從指令隊列中取指令代碼 譯碼譯碼 在在ALU中完成數(shù)據(jù)的運算中完成數(shù)據(jù)的運算 運算結(jié)果運算結(jié)果 的特征保存在標志寄存器的特征保存在標志寄存器FLAGS中。中。67執(zhí)行單元包括執(zhí)行單元包括 運算器運算器 8個通用寄存器個通用寄存器 1個標志寄存器個標志寄存器 EU部分控制電路部分控制電路68總線接口單元總線接口單元功能:功能: 從內(nèi)存中取指令到指令預取隊列從內(nèi)存中取指令到指令預取隊列 負責與內(nèi)存或輸入負責與內(nèi)存或輸入/輸出接口之間的數(shù)輸出接口之間的數(shù)據(jù)傳
39、送據(jù)傳送 在執(zhí)行轉(zhuǎn)移程序時,在執(zhí)行轉(zhuǎn)移程序時,BIU使指令預取隊使指令預取隊列復位,從指定的新地址取指令,并列復位,從指定的新地址取指令,并立即傳給執(zhí)行單元執(zhí)行。立即傳給執(zhí)行單元執(zhí)行。69 總線接口單元包括總線接口單元包括 段寄存器段寄存器 指令指針寄存器指令指針寄存器 指令隊列指令隊列 地址加法器地址加法器 總線控制邏輯電路總線控制邏輯電路708088的指令執(zhí)行過程的指令執(zhí)行過程718088的內(nèi)部寄存器的內(nèi)部寄存器 含含14個個16位寄存器,按功能可分為三位寄存器,按功能可分為三類類 8個通用寄存器個通用寄存器 4個段寄存器個段寄存器 2個控制寄存器個控制寄存器728088的的內(nèi)內(nèi)部部寄寄存
40、存器器73通用寄存器通用寄存器 數(shù)據(jù)寄存器(數(shù)據(jù)寄存器(AX,BX,CX,DX) 地址指針寄存器(地址指針寄存器(SP,BP) 變址寄存器(變址寄存器(SI,DI)74數(shù)據(jù)寄存器數(shù)據(jù)寄存器 8088含含4個個16位數(shù)據(jù)寄存器,它們又位數(shù)據(jù)寄存器,它們又可分為可分為8個個8位寄存器,即:位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL75數(shù)據(jù)寄存器特有的習慣用法數(shù)據(jù)寄存器特有的習慣用法 AX:累加器。所有累加器。所有I/O指令都通過指令都通過AX與接與接口傳送信息,中間運算結(jié)果也多放于口傳送信息,中間運算結(jié)果也多放于AX中中 BX:基址寄存器。在間接尋址中用
41、于存放基址寄存器。在間接尋址中用于存放基地址;基地址; CX:計數(shù)寄存器。用于在循環(huán)或串操作指計數(shù)寄存器。用于在循環(huán)或串操作指令中存放計數(shù)值令中存放計數(shù)值 DX:數(shù)據(jù)寄存器。在間接尋址的數(shù)據(jù)寄存器。在間接尋址的I/O指令中指令中存放存放I/O端口地址;在端口地址;在32位乘除法運算時,位乘除法運算時,存放高存放高16位數(shù)位數(shù)76地址指針寄存器地址指針寄存器 SP:堆棧指針寄存器,其內(nèi)容為棧頂:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂返钠频刂?BP:基址指針寄存器,常用于在訪問基址指針寄存器,常用于在訪問內(nèi)存時存放內(nèi)存單元的內(nèi)存時存放內(nèi)存單元的偏移地址偏移地址堆棧堆棧(Stack)是主存中一個特
42、殊的區(qū)域,采用是主存中一個特殊的區(qū)域,采用“先進后出先進后出”或或“后進先出后進先出”存取操作方式,用存取操作方式,用8088/8086形成的微機系統(tǒng)中,堆棧區(qū)域被稱為形成的微機系統(tǒng)中,堆棧區(qū)域被稱為堆棧段堆棧段77BX與與BP在應用上的區(qū)別在應用上的區(qū)別 作為通用寄存器,二者均可用于存放作為通用寄存器,二者均可用于存放數(shù)據(jù)數(shù)據(jù) 作為基址寄存器,用作為基址寄存器,用BX表示所尋找的表示所尋找的數(shù)據(jù)在數(shù)據(jù)段;用數(shù)據(jù)在數(shù)據(jù)段;用BP則表示數(shù)據(jù)在堆則表示數(shù)據(jù)在堆棧段棧段78變址寄存器變址寄存器 SI:源變址寄存器源變址寄存器 DI:目標變址寄存器目標變址寄存器 用途:常用于指令的間接尋址或變址用途:
43、常用于指令的間接尋址或變址尋址。尋址。 在串操作指令中,分別用在串操作指令中,分別用SI、DI存放存放源操作數(shù)及目標操作數(shù)的偏移地址。源操作數(shù)及目標操作數(shù)的偏移地址。 現(xiàn)在不必完全理解,以后會詳細展開現(xiàn)在不必完全理解,以后會詳細展開79段寄存器段寄存器用于存放相應邏輯段的段基地址用于存放相應邏輯段的段基地址 CS:代碼段寄存器。代碼段存放指令代碼代碼段寄存器。代碼段存放指令代碼 DS:數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器 ES:附加段寄存器附加段寄存器 SS:堆棧段寄存器:指示堆棧區(qū)域的位置堆棧段寄存器:指示堆棧區(qū)域的位置存放操作數(shù)存放操作數(shù)80控制寄存器控制寄存器(1) IP:指令指針寄存器,其內(nèi)容為下
44、一條指令指針寄存器,其內(nèi)容為下一條 要執(zhí)行指令的偏移地址要執(zhí)行指令的偏移地址 FLAGS:標志寄存器,存放運算結(jié)果的標志寄存器,存放運算結(jié)果的 特征特征 6個狀態(tài)標志位個狀態(tài)標志位(CF,SF,AF,PF,OF,ZF) 3個控制標志位個控制標志位(IF,TF,DF)81標志寄存器標志寄存器FLAGS中存放的中存放的9個標志位:個標志位:狀態(tài)標志狀態(tài)標志:用來表示運算結(jié)果的特征:用來表示運算結(jié)果的特征(CF、PF、 AF、ZF、SF和和OF) ;控制標志控制標志:用來控制:用來控制CPU的操作的操作(IF、DF和和TF) 。(1)CF(Carry Flag) 進位標志位。進位標志位。CF=1,表
45、示本表示本次運算中最高位次運算中最高位(第第7位或第位或第15位位) 有進位有進位(加法運加法運算時算時) 或有借位或有借位(減法運算時減法運算時)。無符號數(shù)加無符號數(shù)加/減減:若:若CF=1,表示結(jié)果超出了數(shù)據(jù)范圍。表示結(jié)果超出了數(shù)據(jù)范圍。有符號數(shù)運算有符號數(shù)運算:CF對運算結(jié)果沒有直接意義。對運算結(jié)果沒有直接意義。82(2)PF(Parity Flag) 奇偶標志位。奇偶標志位。 PF=1:本次運算結(jié)果的低八位中有偶數(shù)個本次運算結(jié)果的低八位中有偶數(shù)個1; PF=0:表示有奇數(shù)表示有奇數(shù)1。 PF可以用來進行奇偶校驗,或者用來生成可以用來進行奇偶校驗,或者用來生成 奇偶校驗位。奇偶校驗位。(
46、3)AF(Auxiliary Carry Flag) 輔助進位標志位。輔助進位標志位。 AF=1,表示表示8位運算結(jié)果位運算結(jié)果(限使用限使用AL寄存器寄存器) 中低中低4位向高位向高4位有進位位有進位(加法運算時加法運算時)或有借或有借 位位(減法運算時減法運算時)。 這個標志位這個標志位只在只在BCD數(shù)運算中起作用。數(shù)運算中起作用。83(4)ZF(Zero Flag)零標志位。零標志位。ZF=1,表示運算結(jié)果為表示運算結(jié)果為0(各位全為各位全為0),否則,否則ZF=0。(5)SF(Sign Flag)符號標志位。符號標志位。SF=1,表示運算結(jié)果表示運算結(jié)果的最高位的最高位(第第7位或第位
47、或第15位位)為為1,否則,否則SF=0。(6)OF(Overflow Flag) 溢出標志位。溢出標志位。OF=1 表示二個表示二個用補碼表示的用補碼表示的有符號數(shù)有符號數(shù)的加法或減法結(jié)果超出了該字的加法或減法結(jié)果超出了該字長所能表示的范圍。例如,進行長所能表示的范圍。例如,進行8位運算時,位運算時,OF=1表表示運算結(jié)果大于示運算結(jié)果大于+127 或小于或小于-128,此時不能得到正,此時不能得到正確的運算結(jié)果。確的運算結(jié)果。OF標志對標志對無符號數(shù)無符號數(shù)的運算結(jié)果的運算結(jié)果沒有沒有意義意義。 溢出標志位是根據(jù)操作數(shù)的符號及其變化情況設(shè)溢出標志位是根據(jù)操作數(shù)的符號及其變化情況設(shè)置的置的。
48、例如,加法運算時,兩個操作數(shù)符號相同,而。例如,加法運算時,兩個操作數(shù)符號相同,而結(jié)果的符號與之相反,則結(jié)果的符號與之相反,則OF=1;否則否則OF=0。84(7)IF(Interrupt Flag) 中斷允許標志位。中斷允許標志位。IF=1,表示表示允許允許CPU響應可屏蔽中斷。響應可屏蔽中斷。IF標志可通過標志可通過STI指令置指令置位位(置置1),也可通過,也可通過CLI指令復位指令復位(清零清零)。(8)DF(Direction Flag)方向標志位。在串操作指令中,方向標志位。在串操作指令中,若若DF=0,表示串操作指令執(zhí)行后地址指針自動增量,表示串操作指令執(zhí)行后地址指針自動增量,串
49、操作由低地址向高地址進行;串操作由低地址向高地址進行;DF=1,表示地址指表示地址指針自動減量,串操作由高地址向低地址進行。針自動減量,串操作由高地址向低地址進行。DF標標志位可通過志位可通過STD指令置位,也可通過指令置位,也可通過CLD指令復位。指令復位。(9)TF(Trap Flag)單步標志位。單步標志位。TF=1,控制控制CPU進進入單步工作方式。在這種工作方式下,入單步工作方式。在這種工作方式下,CPU每執(zhí)行每執(zhí)行完一條指令就會自動產(chǎn)生一次內(nèi)部中斷,這在程序完一條指令就會自動產(chǎn)生一次內(nèi)部中斷,這在程序調(diào)試過程中很有用。調(diào)試過程中很有用。85例例:若:若AL = 3BH,AH = 7
50、DH,指出指出AL和和AH中的中的內(nèi)容相加、相減后,標志內(nèi)容相加、相減后,標志CF,AF,PF,SF,OF和和ZF的狀態(tài)。的狀態(tài)。 (1) (AL)+(AH) 由運算結(jié)果可知:由運算結(jié)果可知:CF=C7(D7位上的進位位上的進位)=0 (無進位無進位);AF=C3(D3位上的進位位上的進位)=1(有輔助進位有輔助進位);PF=1(運算結(jié)果有運算結(jié)果有4個個1);SF=D7=1(運算結(jié)果符號運算結(jié)果符號位為位為1);OF=C7 C6=0 1=1(有溢出有溢出);ZF=0(運運算結(jié)果不為算結(jié)果不為0) 。86由運算結(jié)果可知:由運算結(jié)果可知:CF=1(有借位有借位);AF=1(有輔助進有輔助進位位)
51、;PF=1(運算結(jié)果中有運算結(jié)果中有6個個1) ;SF=1(符號位為符號位為1);OF=0(無溢出無溢出) ;ZF=0(運算結(jié)果不為運算結(jié)果不為0)。 運算產(chǎn)生的標志位由程序員根據(jù)需要選擇使用。運算產(chǎn)生的標志位由程序員根據(jù)需要選擇使用。例如,如果參加運算的兩個數(shù)是例如,如果參加運算的兩個數(shù)是有符號數(shù)有符號數(shù)(用補碼表用補碼表示示),他可以用,他可以用OF判斷結(jié)果是否產(chǎn)生溢出,這時他不判斷結(jié)果是否產(chǎn)生溢出,這時他不必關(guān)心必關(guān)心CF的狀態(tài);如果參加運算的兩個數(shù)是的狀態(tài);如果參加運算的兩個數(shù)是無符號無符號數(shù)數(shù),他可以用,他可以用CF判斷結(jié)果是否超出范圍,無需關(guān)心判斷結(jié)果是否超出范圍,無需關(guān)心OF的狀
52、態(tài)。的狀態(tài)。(2) (AL)-(AH)87指令指針寄存器指令指針寄存器 IP IPIP(Instruction PointerInstruction Pointer)為指令指針寄存器,)為指令指針寄存器,指示主存儲器指令的位置指示主存儲器指令的位置 隨著指令的執(zhí)行,隨著指令的執(zhí)行,IPIP將自動修改以指示下一條指將自動修改以指示下一條指令所在的存儲器位置令所在的存儲器位置 IPIP寄存器是一個寄存器是一個專用專用寄存器寄存器 IPIP寄存器與寄存器與CSCS段寄存器聯(lián)合使用以確定下一條指段寄存器聯(lián)合使用以確定下一條指令的存儲單元地址令的存儲單元地址控制寄存器控制寄存器(2)(2)(續(xù)續(xù)) )8
53、8標志寄存器標志寄存器 FLAGSFLAGS 標志標志(FlagFlag)用于反映指令執(zhí)行結(jié)果或控制)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式指令執(zhí)行形式 80888088處理器的各種標志形成了一個處理器的各種標志形成了一個1616位的標位的標志寄存器志寄存器FLAGSFLAGS(程序狀態(tài)字(程序狀態(tài)字PSWPSW寄存器寄存器) 程序設(shè)計需要利用標志的狀態(tài)程序設(shè)計需要利用標志的狀態(tài)89標志寄存器標志寄存器- -分類分類 狀態(tài)標志狀態(tài)標志用來記錄程序運行結(jié)果的狀態(tài)用來記錄程序運行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應地設(shè)置它信息,許多指令的執(zhí)行都將相應地設(shè)置它CF ZF SF PF OF AFCF
54、 ZF SF PF OF AF 控制標志控制標志可由程序根據(jù)需要用指令設(shè)置,可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式用于控制處理器執(zhí)行指令的方式DF IF TFDF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF090進位標志CF(Carry Flag) 當運算結(jié)果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF1; 否則CF03AH + 7CHB6H,沒有進位:CF = 0AAH + 7CH(1)26H,有進位:CF = 1OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF091零標志ZF(Zero F
55、lag) 若運算結(jié)果為0,則ZF1;否則ZF03AH3AH7CH7CHB6HB6H,結(jié)果不是零:,結(jié)果不是零:ZFZF0 084H84H7CH7CH(1 1)00H00H,結(jié)果是零:,結(jié)果是零:ZFZF1 1 注意:注意:ZF為為1表示的結(jié)果是表示的結(jié)果是0OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF092符號標志SF(Sign Flag) 運算結(jié)果最高位為1,則SF1; 否則SF03AH7CHB6H,最高位,最高位D71:SF184H7CH(1)00H,最高位,最高位D70:SF0 有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號所以,最高
56、有效位就是符號標志的狀態(tài)所以,最高有效位就是符號標志的狀態(tài)OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF093奇偶標志PF(Parity Flag) 當運算結(jié)果最低字節(jié)中“1”的個數(shù)為零或偶數(shù)時,PF1;否則PF03AH7CHB6H10110110B結(jié)果中有結(jié)果中有5個個“1”,是奇數(shù):是奇數(shù):PF0 PFPF標志僅反映最低標志僅反映最低8 8位中位中“1 1”的個數(shù)是的個數(shù)是偶或奇,即使是進行偶或奇,即使是進行1616位字操作位字操作OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF094溢出標志OF(Overflow Flag) 若算術(shù)運算的
57、結(jié)果有溢出,則OF1; 否則 OF03AH + 7CHB6H,產(chǎn)生溢出:,產(chǎn)生溢出:OF1AAH + 7CH(1)26H,沒有溢出:,沒有溢出:OF0OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF095什么是溢出? 處理器內(nèi)部以補碼表示有符號數(shù) 8位表達的整數(shù)范圍是:127 128 16位表達的范圍是:32767 32768 如果運算結(jié)果超出這個范圍,就產(chǎn)生了溢出 有溢出,說明有符號數(shù)的運算結(jié)果不正確3AH3AH7CH7CHB6HB6H,就是,就是5858124124182182,已經(jīng)超出已經(jīng)超出128128127127范圍,產(chǎn)生溢出,故范圍,產(chǎn)生溢出,故OFOF1
58、1;補;補碼碼B6HB6H表達真值是表達真值是7474,顯然運算結(jié)果也不正確,顯然運算結(jié)果也不正確 B6HB6H10110110B10110110B,最高位為,最高位為1 1,作為有符號數(shù)是負數(shù)作為有符號數(shù)是負數(shù) 對對B6HB6H求反加求反加1 1等于:等于:01001001B01001001B1 101001010B01001010B4AH4AH7474 所以,所以,B6HB6H表達有符號數(shù)的真值為表達有符號數(shù)的真值為747496溢出和進位的區(qū)別 溢出標志OF和進位標志CF是兩個意義不同的標志 進位標志表示無符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果仍然正確 溢出標志表示有符號數(shù)運算結(jié)果是否超出范
59、圍,運算結(jié)果已經(jīng)不正確97溢出和進位的對比例1:3AH7CHB6H無符號數(shù)運算: 58124182范圍內(nèi)(0255),無進位有符號數(shù)運算: 58124182范圍外,有溢出例例2 2:AAHAAH7CH7CH(1 1)26H26H無符號數(shù)運算:無符號數(shù)運算: 170170124124294294范圍外,有進位范圍外,有進位有符號數(shù)運算:有符號數(shù)運算: 86861241242828范圍內(nèi),無溢出范圍內(nèi),無溢出98溢出和進位的應用場合 處理器對兩個操作數(shù)進行運算時,按照無符號數(shù)求得結(jié)果,并相應設(shè)置進位標志CF;同時,根據(jù)是否超出有符號數(shù)的范圍設(shè)置溢出標志OF 應該利用哪個標志,則由程序員來決定。也就
60、是說,如果將參加運算的操作數(shù)認為是無符號數(shù),就應該關(guān)心進位;認為是有符號數(shù),則要注意是否溢出99溢出的判斷 判斷運算結(jié)果是否溢出有一個簡單的規(guī)則: 只有當兩個相同符號數(shù)相加(包括不同符號數(shù)相減),而運算結(jié)果的符號與原數(shù)據(jù)符號相反時,產(chǎn)生溢出;因為,此時的運算結(jié)果顯然不正確 其他情況下,則不會產(chǎn)生溢出例1:3AH7CHB6H溢出例2:AAH7CH無溢出例3:3AH7CH無溢出例4:AAH7CH2DH溢出100 輔助進位標志 AF(Auxiliary Carry Flag)3AH7CHB6H,D3有進位:AF1運算時運算時D D3 3位(低半字節(jié))有進位或借位(低半字節(jié))有進位或借位時,位時,AF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豐巢柜掃碼取件流程及用戶合同詳解版B版
- 二零二五版辦公家具定制與售后支持協(xié)議3篇
- 二零二五年度跨境離婚協(xié)議書及財產(chǎn)轉(zhuǎn)移范本3篇
- 二零二五年度海洋資源開發(fā)項目技術(shù)人員聘任協(xié)議3篇
- 二零二五年度KTV加盟店運營管理及培訓合同范本3篇
- 二零二五版公積金個人提前還款合同3篇
- 西安航空學院《材料科學基礎(chǔ)I》2023-2024學年第一學期期末試卷
- 二零二五年度柑橘產(chǎn)品溯源與食品安全合同3篇
- 烏海職業(yè)技術(shù)學院《視覺藝術(shù)賞析與表達》2023-2024學年第一學期期末試卷
- 個性化桶裝水供應服務協(xié)議2024版版B版
- 2024年關(guān)愛留守兒童工作總結(jié)
- GB/T 45092-2024電解水制氫用電極性能測試與評價
- 《算術(shù)平方根》課件
- DB32T 4880-2024民用建筑碳排放計算標準
- 2024-2024年上海市高考英語試題及答案
- 注射泵管理規(guī)范及工作原理
- 山東省濟南市2023-2024學年高二上學期期末考試化學試題 附答案
- 大唐電廠采購合同范例
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測定
- IEC 62368-1標準解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
評論
0/150
提交評論