微機系統(tǒng)中的微處理器.ppt_第1頁
微機系統(tǒng)中的微處理器.ppt_第2頁
微機系統(tǒng)中的微處理器.ppt_第3頁
微機系統(tǒng)中的微處理器.ppt_第4頁
微機系統(tǒng)中的微處理器.ppt_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第三章 微機系統(tǒng)中的微處理器,3.2 8086的內部結構 3.3 8086的寄存器結構 3.4 8086的存儲器組織 3.5 8086的I/O組織 3.6 8086的數(shù)據(jù)尋址方式 3.7 高檔CPU的寄存器和存儲器,微處理器的是組成計算機系統(tǒng)的核心部件,其基本功能為:,(1)支持功能完善的指令系統(tǒng),進行各種算術、邏輯運算,通過程序完成復雜的科學計算。 (2)支持各種結構的程序的執(zhí)行,如程序的分支、循環(huán)、嵌套、子程序的調用和返回、中端服務程序。 (3)控制與存儲器、外設等相連接,組成完整的微機系統(tǒng)。,3.1 微處理器的一般結構,3.1.1 微處理器的內部結構,一、微處理器的功能,3.1.1 微處

2、理器的內部結構,指令的執(zhí)行過程,3.1.1 微處理器的內部結構,外部結構輸入/輸出引腳微處理器級總線 微處理器通過微處理器級總線與外部部件和設備相聯(lián)系。,1總線的功能 和存儲器之間交換信息 和I/O設備之間交換信息 為了系統(tǒng)工作而接收和輸出必要的信號,如輸入時鐘脈沖、復位信號、電源和接地等,2總線的分類 數(shù)據(jù)總線(Data Bus) 地址總線(Address Bus) 控制總線(Control Bus),一總線功能與分類,3.1.2 微處理器的外部結構,存儲器通常由幾個模塊組成,每個模塊有幾千個單元,每個存儲單元有唯一的存儲器地址與其對應。,二存儲器和I/O地址空間,I/O接口保證數(shù)據(jù)、控制與

3、狀態(tài)信息在CPU和I/O設備之間正常傳送的電路。I/O和CPU之間的通信利用稱為I/O端口的寄存器來完成。 對應一個I/O設備的I/O接口,可能包括幾個I/O端口,每個I/O端口都有一個唯一的I/O地址與其對應。,3.1.2 微處理器的外部結構,存儲單元和I/O端口以字節(jié)為單位存放數(shù)據(jù),每個字節(jié)對應一個標識地址。 地址總線的條數(shù)即為二進制地址碼的位數(shù),它可能表示的不同地址的集合稱為地址空間。 地址碼的位數(shù)決定了地址空間的大小:2n,二存儲器和I/O地址空間,單地址空間:對存儲器和I/O端口統(tǒng)一進行編址。 雙地址空間:對存儲器和I/O端口獨立進行編址。,存儲器: 高位選擇模塊,低位選擇模塊內的存

4、儲單元。 I/O設備:高位選擇I/O接口,低位選擇I/O端口。,3.1.2 微處理器的外部結構,8086由兩個獨立的邏輯單元組成,即總線接口單元(BIU)和執(zhí)行單元(EU)。,BIU的任務:執(zhí)行總線操作。 (1)訪問存儲器,包括取指令、取操作數(shù)、存結果等。 (2)與I/O之間的信息傳輸。 EU的任務:執(zhí)行指令,進行全部算術和邏輯運算、完成偏移地址的計算,向BIU提供指令執(zhí)行結果的數(shù)據(jù)和訪問存儲器需要的偏移地址,并對通用寄存器和標志寄存器進行管理。,3.2 8086的功能結構,3.2 8086的內部結構,(3)EU取得指令,譯碼并執(zhí)行指令。若指令需要取操作數(shù)或存操作結果,需要訪問存儲器或I/O,

5、EU向BIU發(fā)出訪問總線請求。當BIU接到EU的總線請求,若正忙,則須等BIU執(zhí)行完當前的總線周期,才能響應EU的請求;若BIU空閑,則立即執(zhí)行EU申請總線的請求。,(1)BIU的指令隊列有兩個或兩個以上字節(jié)為空時,BIU自動啟動總線周期,取指填充指令隊列。直至隊列滿,進入空閑狀態(tài)。,(2)EU每執(zhí)行完一條指令,從指令隊列的隊首取指。特殊情況:系統(tǒng)初始化后,指令隊列為空,EU等待BIU從內存取指,填充指令隊列。,(4)EU執(zhí)行轉移、調用和返回指令時,若下一條指令不在指令隊列中,則隊列被自動清除,BIU根據(jù)本條指令執(zhí)行情況重新取指填充指令隊列。,流水線技術原則,取指令取操作數(shù)(如果需要)執(zhí)行指令

6、寫入存儲器。,8086首次引入了流水線技術,執(zhí)行指令和總線訪問可以同時進行,提高了總線利用率。,8086/8088以前的CPU,指令流水線,3.3 8086的寄存器結構,3.3.1 通用寄存器組,一、數(shù)據(jù)寄存器,(1)16位數(shù)據(jù)寄存器 AX累加器,使用頻度最高,用于算術、邏輯運算 以及與外設傳送信息等; BX基址寄存器,常用做存放存儲器基地址; CX計數(shù)器,循環(huán)和串操作等指令中的隱含計數(shù)器; DX數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的高16位, 或存放外設端口地址。,(2)8位數(shù)據(jù)寄存器: AH BH CH DH AL BL CL DL,3.3.1 通用寄存器組,二、地址指針和變址寄存器,變址寄存

7、器常用于存儲器尋址時提供地址: SI源變址寄存器 DI目的變址寄存器,指針寄存器用于尋址內存堆棧內的數(shù)據(jù): SP堆棧指針,指示棧頂?shù)钠频刂贰?SP不能再用于其他目的,具有專用目的。 BP基址指針,表示數(shù)據(jù)在堆棧段中的基地址。 SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址。,8086有4個16位段寄存器: CS Code Segment,執(zhí)行程序所在段的段地址 SS Stack Segment,堆棧段的段地址 DS Data Segment,數(shù)據(jù)段的段地址 ES Extra Segment,附加段的段地址,3.3.2 段寄存器組,3.3.3 控制寄存器組,指令指針寄存器I

8、P(Instruction Pointer): 指示下一條要執(zhí)行指令的偏移地址,計算機通過CS 和 IP來控制指令序列的執(zhí)行流程。 IP寄存器是一個專用寄存器。,標志寄存器(FLAG): 狀態(tài)標志記錄程序運行結果的狀態(tài)信息,許多指令的執(zhí)行都將相應地設置它。 CF ZF SF PF OF AF 控制標志可由程序根據(jù)需要用指令設置,用于控制處理器執(zhí)行指令的方式。 DF IF TF,3.3.3 控制寄存器組,標志寄存器(FLAG),進位標志CF:當運算結果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF = 1;否則CF = 0。 例如: 3AH + 7CHB6H, 沒有進位:CF

9、= 0 AAH + 7CH(1)26H, 有進位: CF = 1,溢出標志OF:若算術運算的結果有溢出,則OF=1;否則 OF0 例如: 3AH + 7CHB6H, 產生溢出:OF = 1 AAH + 7CH(1)26H, 沒有溢出:OF = 0,標志寄存器(FLAG),標志寄存器(FLAG),問題: 1. 什么是溢出? 2. 溢出和進位有什么區(qū)別? 3. 處理器怎么處理,程序員如何運用? 4. 如何判斷是否溢出?,處理器內部以補碼表示有符號數(shù)。 8個二進制位能夠表達的整數(shù)范圍是:+127 -128 如果運算結果超出了這個范圍,就是產生了溢出。 有溢出,說明有符號數(shù)的運算結果不正確。,1. 什

10、么是溢出?,標志寄存器(FLAG),例如: 3AH + 7CHB6H,即58 + 124182,已經超出-128 127范圍,產生溢出,所以OF = 1;另一方面,補碼B6H表達真值是-74,顯然運算結果也不正確。,溢出標志OF和進位標志CF是兩個意義不同的標志。 進位標志表示無符號數(shù)運算結果是否超出范圍,運算結果仍然正確; 溢出標志表示有符號數(shù)運算結果是否超出范圍,運算結果已經不正確。,2. 溢出和進位,標志寄存器(FLAG),例1:3AH + 7CHB6H 無符號數(shù)運算:58124182,范圍內,無進位 有符號數(shù)運算: 58124182 ,范圍外,有溢出,2. 溢出和進位,標志寄存器(FL

11、AG),例2:AAH + 7CH(1)26H 無符號數(shù)運算:170124294,范圍外,有進位 有符號數(shù)運算:8612438 ,范圍內,無溢出,處理器對兩個操作數(shù)進行運算時,按照無符號數(shù)求得結果,并相應設置進位標志CF;同時,根據(jù)是否超出有符號數(shù)的范圍設置溢出標志OF。,3. 如何應用溢出和進位標志,標志寄存器(FLAG),應該利用哪個標志,則由程序員來決定。也就是說,如果將參加運算的操作數(shù)認為是無符號數(shù),就應該關心進位;認為是有符號數(shù),則要注意是否溢出。,判斷運算結果是否溢出有一個簡單的規(guī)則: 只有當兩個相同符號數(shù)相加(異號數(shù)相減可轉化為同號數(shù)相加),而運算結果的符號與原數(shù)據(jù)符號相反時,產生

12、溢出;因為,此時的運算結果顯然不正確。 其他情況下,則不會產生溢出。,4. 溢出的判斷,標志寄存器(FLAG),3.4 8086的存儲器組織,3.4.1 存儲器地址空間和數(shù)據(jù)存儲格式,8086的存儲器是以字節(jié)(Byte,8位)為單位組織的。 20條地址總線,可尋址的存儲器地址空間為220B(1MB)。,每個存儲單元都有一個編號 存儲器地址 每個存儲單元存放一個字節(jié)的內容,二進制位1位二進制數(shù):0或1。 字節(jié)8個二進制位,D7D0。 字16位,2個字節(jié),D15D0。 雙字32位,4個字節(jié),D31D0。,信息的表達單位:,3.4 8086的存儲器組織,3.4.1 存儲器地址空間和數(shù)據(jù)存儲格式,兩個

13、連續(xù)的字節(jié),為一個字:低對低,高對高(小端方式)。 字的地址指低字節(jié)的地址。,字的地址為偶地址,稱字的存儲是對準的,訪問時只需一個總線周期。 字的地址為奇地址,稱字的存儲是未對準的,訪問時要兩個總線周期。,字: 0002H=1234H 0003H=5612H,字節(jié): 0002H=34H 0003H=12H,3.4 8086的存儲器組織,3.4.2 存儲器分段管理和物理地址的形成,對應每個存儲單元都有一個唯一的20位編號,即物理地址。 00000HFFFFFH,8086CPU采用地址分段方法管理存儲器,即用邏輯地址表示一個存儲器單元地址: 段基地址 : 段內偏移地址,段地址左移4位偏移地址20位

14、物理地址,例如: 邏輯地址“1460H:100H” = 物理地址14700H 顯然,一個物理地址可以有多個邏輯地址。,3.4 8086的存儲器組織,3.4.2 存儲器分段管理和物理地址的形成,偏移地址:說明主存單元距離段起始位置的偏移量。 每段不超過64KB,偏移地址也可用16位數(shù)據(jù)表示。,段地址:說明邏輯段在主存中的起始位置。 8086規(guī)定段地址必須是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達段地址。,3.4 8086的存儲器組織,3.4.2 存儲器分段管理和物理地址的形成,8086對邏輯段的要求是: 段地址低4位均為0,每段最大不

15、超過64KB。 每個段不要求必須是64KB,段與段可以重疊。,1MB空間最多能分成多少個段?,每隔64K個存儲單元開始一個段,所以1MB最少有: 22021616 個段,每隔16個存儲單元就可以開始一個段,所以1MB最多有: 2201621664K 個段,1MB空間最少能分成多少個段?,3.4 8086的存儲器組織,3.4.3 信息的分段存儲與段寄存器的關系,程序區(qū):存儲程序的指令代碼,由CS劃定并控制。,數(shù)據(jù)區(qū):存儲原始數(shù)據(jù)、中間結果和最后結果,由DS和ES控制。,堆棧區(qū):存儲需要壓入堆棧的數(shù)據(jù)和狀態(tài)信息,由SS控制。,注意: (1)訪問存儲器時,段地址由默認段寄存器提供,或由“指定”的段寄

16、存器提供; (2)DS、ES和SS的內容用傳送指令置入,但不能向CS中置入數(shù); (3)偏移地址的獲得有約定。,程序員如何分配各個邏輯段?,3.3 8086的存儲器組織,3.4.3 信息的分段存儲與段寄存器的關系,程序的指令序列必須安排在代碼段; 程序使用的堆棧一定在堆棧段; 程序中的數(shù)據(jù)默認是安排在數(shù)據(jù)段,也經常安排在附加段,尤其是串操作的目的區(qū)必須是附加段。,數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中。,各個邏輯段獨立示意圖,各個邏輯段重疊示意圖,3.5 8086的I/O組織,I/O接口與CPU之間的通信是利用稱為I/O端口的寄存器來完成的。微型機系統(tǒng)要為I/O芯片的每個端口分配一

17、個地址,各個端口有唯一的I/O地址與之對應,是單獨編址的。,8086CPU地址總線的低16位用來對8位I/O端口尋址,I/O地址空間為65536,即可訪問65536個8位的I/O端口,尋址范圍是64KB。任何兩個編號相鄰的8位端口可以組成一個16位端口。,3.5 8086的數(shù)據(jù)尋址方式,指令由操作碼和操作數(shù)兩部分組成:,操作碼:說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉等操作,它是指令中不可缺少的組成部分。,操作數(shù):指令執(zhí)行的參與者,即各種操作的對象。 有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)。,3.6 8086的數(shù)據(jù)尋址方式,指令中的操作

18、數(shù),可以是一個具體的數(shù)值,可以是存放數(shù)據(jù)的寄存器,或指明數(shù)據(jù)在主存位置的存儲器地址。,指令系統(tǒng)設計了多種操作數(shù)的來源,尋找操作數(shù)的過程就是操作數(shù)的尋址方式。,8086的數(shù)據(jù)尋址方式有: 立即數(shù)尋址方式 寄存器尋址方式 存儲器尋址方式 隱含尋址-以后學習,3.6 8086的數(shù)據(jù)尋址方式,MOV dest , src;destsrc ;MOV指令的功能是將源操作數(shù)src ;傳送至目的操作數(shù)dest,MOV AL, 05H ;AL05H MOV BX, AX ;BXAX MOV AX, SI ;AXDS:SI MOV AX, BP+06H ;AXSS:BP+06H MOV AX, BX+SI ;AX

19、DS:BX+SI,指令的助記符格式: 操作碼 操作數(shù)1, 操作數(shù)2;注釋,立即數(shù)尋址,指令中的操作數(shù)直接存放在機器代碼中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)。,可以是8位數(shù)i8(00HFFH), 可以是16位數(shù)i16(0000HFFFFH)。,立即數(shù)尋址方式常用來給寄存器賦值。 MOV AL, 05H;AL05H MOV AX, 0102H;AX0102H,小地址端,大地址端,寄存器尋址,MOV AX, 1234H ;AX1234H MOV BX, AX ;BXAX,操作數(shù)存放在CPU的內部寄存器REG中,8位寄存器R8: AH/AL/BH/BL/CH/CL

20、/DH/DL 16位寄存器R16: AX/BX/CX/DX/SI/DI/BP/SP 4個段寄存器SEG:CS/DS/SS/ES,存儲器尋址,指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址EA),而段地址在默認的或用段超越前綴指定的段寄存器中。,8086設計了多種存儲器尋址方式: 直接尋址方式 寄存器間接尋址方式 寄存器相對尋址方式 基址變址尋址方式 相對基址變址尋址方式,存儲器尋址,1. 直接尋址方式,有效地址在指令中直接給出,默認的段地址在DS段寄存器,可使用段超越前綴改變。,MOV AX, 2000H ;AXDS:2000H ;指令代碼:A10020 MOV AX, ES:200

21、0H ;AXES:2000H ;指令代碼:26A10020,存儲器尋址,2. 寄存器間接尋址方式,有效地址存放在基址寄存器BX, 或變址寄存器SI、DI,或基址指針BP中。,MOV AX, BX ;AXDS:BX MOV AX, ES:DI ;AXES:SI,段地址對應BX/SI/DI寄存器默認是DS,對應BP寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,3. 寄存器相對尋址方式,有效地址是寄存器內容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。 有效地址BX/BP/SI/DI8/16位位移量,MOV AX, DI+06H;AXDS:DI+06H MOV AX, B

22、P+06H;AXSS:BP+06H,段地址對應BX/SI/DI寄存器默認是DS,對應BP寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,4. 基址變址尋址方式,有效地址由基址寄存器(BX或BP)的內容加上變址寄存器(SI或DI)的內容構成: 有效地址BX/BPSI/DI,MOV AX, BX+SI ;AXDS:BX+SI MOV AX, BP+DI ;AXSS:BP+DI MOV AX, DS:BP+DI;AXDS:BP+DI,段地址對應BX基址寄存器默認是DS,對應BP基址寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,5. 基址變址且相對尋址方式,有效地址是基址寄存器(BX/BP)

23、、變址寄存器(SI/DI)與一個8位或16位位移量之和: 有效地址BX/BPSI/DI8/16位位移量,MOV AX, BX+SI+06H;AXDS:BX+SI+06H MOV AX, BP+SI+06H;AXSS:BP+SI+06H,段地址對應BX基址寄存器默認是DS,對應BP基址寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,注意:(1)位移量可用符號表示 (2)同一尋址方式有多種表達方式,在寄存器相對尋址或相對基址變址尋址方式中,位移量可用符號表示: MOV AX, SI+COUNT;COUNT是已定義的變量或常量 MOV AX, BX+SI+WNUM;WNUM也是變量或常量,同一尋

24、址方式有時可以寫成不同的形式: MOV AX, BXSI ;MOV AX, BX+SI MOV AX, COUNTSI ;MOV AX, SI+COUNT MOV AX, WNUMBXSI ;MOV AX, WNUMBX+SI ;MOV AX, BX+SI+WNUM,3.7 高檔CPU的寄存器和存儲器,3.7.1 高檔CPU的寄存器結構,與8086的區(qū)別:,(1)8個通用寄存器的長度擴展為32位:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP。,(2)EIP存放下一條要執(zhí)行指令的偏移地址。其低16位稱為IP,用于偏移地址為16位的實模式情況。,(3)標志寄存器擴展為32位EFLAGS,增加了高檔CPU特有的狀態(tài)標志和控制標志。,(4)增加了16位的段寄存器FS和GS。,3.7 高檔CPU的寄存器和存儲器,3.7.2 高檔CPU的存儲器訪問機制,奔騰CPU可訪問存儲器空間為4GB。采用虛擬存儲技術,可大大擴展存儲空間。,實模式即8086模式,CPU只能訪問地

溫馨提示

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

最新文檔

評論

0/150

提交評論