




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本章學習目的本章學習目的2022-3-121.掌握微處理器的編程結構掌握微處理器的編程結構;2.掌握標志寄存器掌握標志寄存器F各位的含義、作用及各位的含義、作用及DEBUG運行后標志位的表示方法運行后標志位的表示方法;3.掌握掌握8086微處理器的主要引腳功能微處理器的主要引腳功能;4.掌握掌握8086系統的系統的存儲器組織結構存儲器組織結構及及堆棧堆棧的活動的活動情況情況;5.掌握掌握8086的時鐘及其發生電路的時鐘及其發生電路, ,記住系統記住系統復位復位后各寄存器的狀態。后各寄存器的狀態。第一節第一節 8086微處理器內部結構微處理器內部結構一、指令和程序的解釋方式一、指令和程序的解釋方
2、式機器指令機器指令操作碼操作碼操作數操作數 +若干條指令構成程序若干條指令構成程序在微機中在微機中, ,微處理器解釋一條指令的完整步驟可以微處理器解釋一條指令的完整步驟可以歸納為如下兩個階段歸納為如下兩個階段:v 取指取指 從內存中取出指令從內存中取出指令, ,明確指令規定的功能明確指令規定的功能;8位機順序解釋位機順序解釋8086重疊解釋重疊解釋VSv 執行執行 分析指令要求實現的功能分析指令要求實現的功能, ,讀取所需要的操讀取所需要的操 作數作數, ,執行指令規定的操作執行指令規定的操作, ,并保存執行結果。并保存執行結果。8086的內部結構的內部結構總體結構總體結構NEXT8086/
3、/8088 CPU的內部是由兩個獨立的工作部的內部是由兩個獨立的工作部件構成件構成,分別是總線接口部件分別是總線接口部件BIU( (Bus Interface Unit) )和執行部件和執行部件EU( (Execution Unit) )。圖中虛。圖中虛線右半部分是線右半部分是BIU,左半部分是左半部分是EU。兩者并行操。兩者并行操作作,提高了提高了CPU的運行效率。的運行效率。 下面分別介紹下面分別介紹BIU和和EU兩者的功能兩者的功能:返回任務任務: ( (1) )從內存取指令從內存取指令指令隊列緩沖器指令隊列緩沖器; ( (2) ) 取數據到運行單元進行運算并將運算結果送取數據到運行單元
4、進行運算并將運算結果送到目的單元到目的單元( (內存或外設端口內存或外設端口) ); 總線接口部件總線接口部件BIU功能功能: 實現實現8086CPU與存儲器和外部設備之與存儲器和外部設備之 間的數據傳送。間的數據傳送。( (3) )重疊實現取指令與執行指令!重疊實現取指令與執行指令!返回設立指令隊列緩沖器的目的是為了實現重疊解釋指設立指令隊列緩沖器的目的是為了實現重疊解釋指令。令。工作原理工作原理:緩沖器中只要有一條指令緩沖器中只要有一條指令, ,EU就開始執行就開始執行;緩沖器中只要有兩個字節為空緩沖器中只要有兩個字節為空, ,BIU便自動執行取指便自動執行取指操作操作;緩沖器緩沖器結構結
5、構: 指令隊列緩沖器為指令隊列緩沖器為6字節字節( (8088只有只有4字節字節) ) 容量的容量的FIFO。當當EU執行執行完轉移、調用和返回等切換程序流程的完轉移、調用和返回等切換程序流程的指令時指令時, ,緩沖器中原來的內容將被清除緩沖器中原來的內容將被清除, ,BIU從內存從內存中新的位置開始重新預取指令填入隊列中。中新的位置開始重新預取指令填入隊列中。返回設立地址加法器的目的設立地址加法器的目的: 8086 CPU地址總線有地址總線有20位位, ,而內部地址寄存器都是而內部地址寄存器都是16位位, ,需要加法器形需要加法器形成成20位地址。位地址。地址發生器地址發生器組成組成: 地址
6、加法器、指令指針地址加法器、指令指針IP和段寄存器。和段寄存器。工作原理工作原理: 段寄存器內容段寄存器內容16 + 偏移地址偏移地址( (IP或或指令中的操作數地址給出指令中的操作數地址給出) )。返回執行部件執行部件EU結構結構: ( (1) )16位算術邏輯單元位算術邏輯單元ALU;( (2) )16位標志寄存器位標志寄存器F;( (3) )數據暫存寄存器數據暫存寄存器( (與編程無關與編程無關, ,即不對用戶開放即不對用戶開放) )( (4) )通用寄存器組:通用寄存器組: AX、BX、CX、DX-數據寄存器數據寄存器 SP、BP-指針寄存器指針寄存器 SI、DI-變址寄存器變址寄存器
7、功能功能: 執行指令并暫執行指令并暫存運算結果存運算結果( (5) )EU控制電路控制電路: 內部電路內部電路, ,不對用戶開放不對用戶開放返回8086 CPU的編程模型的編程模型程序設計者所看到程序設計者所看到( (或程序可見或程序可見) )的的8086CPU即即為該為該CPU的編程模型。包括三個部分的編程模型。包括三個部分:編程模型編程模型寄存器組寄存器組存儲器存儲器I/O資源資源三、三、8086的寄存器結構的寄存器結構通用寄存器通用寄存器段寄存器段寄存器AH AL AX 累加器累加器BH BL BX 基址寄存器基址寄存器CH CL CX 計數寄存器計數寄存器DH DL DX 數據寄存器數
8、據寄存器 SP 堆棧指針堆棧指針 BP 基址指針基址指針 SI 源變址寄存器源變址寄存器 DI 目的變址寄存器目的變址寄存器 CS 代碼段寄存器代碼段寄存器 DS 數據段寄存器數據段寄存器 ES 附加段寄存器附加段寄存器 SS 堆棧段寄存器堆棧段寄存器 IP 指令指針指令指針 F 標志寄存器標志寄存器 專用寄存器專用寄存器1. 通用寄存器通用寄存器( (1) )數據寄存器數據寄存器數據寄存器可以用于存放數據寄存器可以用于存放8位或位或16位的二進制操作位的二進制操作數數,這些操作數可以是參加操作的原始數據、運算這些操作數可以是參加操作的原始數據、運算得到的中間結果得到的中間結果,也可以是操作數
9、的地址。大多數也可以是操作數的地址。大多數算術和邏輯運算指令都可以使用這些寄存器算術和邏輯運算指令都可以使用這些寄存器。在在8086微處理器中微處理器中, ,數據寄存器有數據寄存器有4個個, ,累加器累加器AX( (Accumulator) )、基址寄存器基址寄存器BX( (Base) )、計數計數寄存器寄存器CX( (Count) )、數據寄存器數據寄存器DX( (Data) )。 通用寄存器共有通用寄存器共有8個個, ,又可分為兩組。又可分為兩組。每個每個16位數據寄存器可分為高位數據寄存器可分為高8位位( (AH、BH、CH和和DH) )和低和低8位位( (AL、BL、CL和和DL),)
10、,可分別尋址可分別尋址, ,獨立操作。獨立操作。 指針寄存器和變址寄存器一般用來存放地址偏移量指針寄存器和變址寄存器一般用來存放地址偏移量,用于堆棧操作和變址運算中計算操作數的有效地址用于堆棧操作和變址運算中計算操作數的有效地址。指針寄存器指的是堆棧指針寄存器指針寄存器指的是堆棧指針寄存器SP( (Stack Pointer) )和基址指針寄存器和基址指針寄存器BP( (Base Pointer) ),其中其中SP用來指用來指示堆棧頂部單元的位置示堆棧頂部單元的位置,實現堆棧操作實現堆棧操作,而而BP用來存用來存放在現行堆棧段中的一個數據區的基地址。放在現行堆棧段中的一個數據區的基地址。 (
11、(2) )指針寄存器和變址寄存器指針寄存器和變址寄存器變址寄存器包括源變址寄存器變址寄存器包括源變址寄存器SI( (Source Index) )和目和目的變址寄存器的變址寄存器DI( (Destination Index) ),分別用來存放分別用來存放源操作數和目的操作數的偏移地址。源操作數和目的操作數的偏移地址。寄寄 存存 器器 操操 作作AX 1) ) 在字乘字除指令中作累加器; 2) ) 在字I/O操作時作數據寄存器。AH 1) ) 在字節乘字節除指令中存放結果; 2) ) 在LAHF中作目的寄存器。AL 1) ) 在字節乘字節除指令中作累加器; 2) ) 在字節I/O操作時作數據寄存
12、器; 3) ) BCD、ASCII碼數據運算時作累加器; 4) ) 在XLAT指令中作累加器。BX 1) ) 間接尋址時作地址寄存器和基址寄存器; 2) ) 在XLAT指令中作基址寄存器。CX 1) ) 串操作時作串長計數器; 2) ) 循環操作時作循環次數計數器。 CL 移位操作時作移位次數計數器。 DX 1) ) 字乘字除指令中作輔助寄存器; 2) ) I/O指令間接尋址時作端口地址寄存器。 SP 堆棧操作時作堆棧指針。 SI 1) ) 間接尋址時作地址寄存器和變址寄存器; 2) ) 串操作時作源變址寄存器。 DI 1) ) 間接尋址時作地址寄存器和變址寄存器; 2) ) 串操作時作目的變
13、址寄存器。 在 某 些 指在 某 些 指令中令中, ,以上以上各 通 用 寄各 通 用 寄存 器 具 有存 器 具 有特 定 的 用特 定 的 用途途, ,稱為寄稱為寄存 器 的 隱存 器 的 隱含用法。含用法。指令指針指令指針IP是一個是一個16位專用寄存器位專用寄存器, ,程序運行時程序運行時, ,它它始終指向始終指向EU要執行的下一條指令所在單元。當要執行的下一條指令所在單元。當EU執行本條指令時執行本條指令時, ,IP中的內容自動增量中的內容自動增量, ,以指向下一以指向下一條指令所在的內存單元。條指令所在的內存單元。2. 指令指針指令指針IP( (Instruction Pointe
14、r) )需要注意的是需要注意的是, ,程序中不能隨意對程序中不能隨意對IP進行存取操進行存取操作作, ,只有轉移指令、子程序調用和返回指令以及只有轉移指令、子程序調用和返回指令以及中斷處理時才能對中斷處理時才能對IP的內容進行修改和設置。的內容進行修改和設置。代碼段寄存器代碼段寄存器CS( (Code Segment),),指向當前代碼段指向當前代碼段;數據段寄存器數據段寄存器DS( (Data Segment),),指向當前數據段指向當前數據段;附加段寄存器附加段寄存器ES( (Extra Segment),),指向當前附加段指向當前附加段;堆棧段寄存器堆棧段寄存器SS( (Stack Se
15、gment),),指向當前堆棧段指向當前堆棧段。8086系統對內存實行分段管理系統對內存實行分段管理, ,在在BIU中有中有4個個16位位的段寄存器的段寄存器, ,專門用于存放各段在內存中的起始地址專門用于存放各段在內存中的起始地址( (段基址段基址) )。這這4個段寄存器是個段寄存器是:1M字節的地址是分段尋字節的地址是分段尋址的址的, ,分段是個動態概分段是個動態概念。段基址與具體程序念。段基址與具體程序無關無關。標志寄存器位于標志寄存器位于EU中, ,它是一個它是一個16位的寄存器位的寄存器, ,但但實際上只用了其中實際上只用了其中9位。位。D15D0 OF DF TF IF SF ZF
16、 AF PF CF4. 標志寄存器標志寄存器F( (Flag Register) )( (1) )狀態標志位狀態標志位 用于反映用于反映EU執行算術或邏輯運算以后的結果特征執行算術或邏輯運算以后的結果特征,指令執行時由指令執行時由EU根據指令的執行結果設置這些位根據指令的執行結果設置這些位的狀態的狀態,并進一步影響或控制某些后繼指令并進一步影響或控制某些后繼指令( (如條如條件轉移指令、循環指令等件轉移指令、循環指令等) )的執行。不同指令對各的執行。不同指令對各狀態標志位的影響是不同的。狀態標志位的影響是不同的。根據各位的作用和含義根據各位的作用和含義, ,各標志位又分為狀態標志各標志位又分
17、為狀態標志位和控制標志位兩大類。位和控制標志位兩大類。狀態標志位共有狀態標志位共有6位位, ,它們分別是它們分別是:v 進位標志進位標志CF( (Carry Flag) ) 反映算術運算后最高反映算術運算后最高位是否出現進位或借位位是否出現進位或借位,有則為有則為“1”, ,無則為無則為 “0”。v 奇偶標志奇偶標志PF( (Parity Flag) ) 反映指令執行結果反映指令執行結果低低8 位位數據中數據中1的個數是否為偶數的個數是否為偶數, ,若是則該位置若是則該位置“1”, ,否則置否則置“0”。v 輔助進位標志輔助進位標志AF( (Auxiliary Flag) ) 反映運算結果反映
18、運算結果的的低低4位位是否向高位產生進位或借位是否向高位產生進位或借位, ,有則為有則為“1”, ,無則為無則為“0”。v符號標志符號標志SF( (Sign Flag) ) 反映運算結果最高位的反映運算結果最高位的狀態狀態, ,并與運算結果最高位狀態相同。表明了本并與運算結果最高位狀態相同。表明了本次運算的結果是正還是負。次運算的結果是正還是負。v零標志零標志ZF( (Zero Flag) ) 反映運算結果是否為零反映運算結果是否為零,若是若是,則該位置則該位置“1”,否則置否則置“0”。v溢出標志溢出標志OF( (Overflow Flag) ) 反映帶符號數進行反映帶符號數進行算算 術運算
19、后是否有溢出術運算后是否有溢出, ,有則為有則為“1”, ,無則為無則為“0”。 用于對用于對CPU的某些操作實施控制的某些操作實施控制, ,并可在程序中用并可在程序中用相應的指令來設置其狀態。相應的指令來設置其狀態。3位控制標志分別是位控制標志分別是:v方向標志方向標志DF( (Direction Flag) ) 用于控制串操作指令用于控制串操作指令執行時的步進方向執行時的步進方向, ,該位為該位為“1”, ,則串操作指令按地則串操作指令按地址遞減的順序對串進行操作址遞減的順序對串進行操作, ,否則按地址遞增的順否則按地址遞增的順序進行操作。序進行操作。( (2) )控制標志位控制標志位v中
20、斷允許標志中斷允許標志IF( (Interrupt Flag) ) 指示是否允許系指示是否允許系 統響應外部的可屏蔽中斷請求統響應外部的可屏蔽中斷請求, ,該位為該位為“1”,”,表示表示允許允許( (開中斷開中斷),),否則表示禁止否則表示禁止( (關中斷關中斷) )v陷阱標志陷阱標志TF( (Trace Flag) ) 當該位為當該位為“1”時時,CPU每執行完一條指令便自動產生一個內部中斷每執行完一條指令便自動產生一個內部中斷,并轉并轉去執行一個中斷服務程序去執行一個中斷服務程序,可以借助該中斷服務程可以借助該中斷服務程序來檢查每條指令的執行情況序來檢查每條指令的執行情況,稱為稱為“單步
21、工作方單步工作方式式”,常用于程序的調試。常用于程序的調試。DEBUG中標志的表示中標志的表示 NV等價于等價于 OF=0,OV等價于等價于OF=1; UP等價于等價于 DF=0,DN等價于等價于DF=1; DI 等價于等價于 IF =0,EI 等價于等價于 IF =1; PL等價于等價于 SF=0,NG等價于等價于SF=1; NZ等價于等價于 ZF=0,ZR等價于等價于ZF=1; NA等價于等價于 AF=0,AC等價于等價于AF=1; PO等價于等價于 PF=0,PE等價于等價于 PF=1; NC等價于等價于 CF=0,CY等價于等價于CF=1。Intel 8088是是準準16位位CPU,其
22、內部采用其內部采用16位結構位結構,與與8086基本相同基本相同,外部數據總線寬度為外部數據總線寬度為8位位。8088內內部也包括兩大功能部件部也包括兩大功能部件,其中其中EU與與8086完全一樣完全一樣,只是只是BIU略有區別略有區別: 8086指令隊列是指令隊列是6字節長字節長,而而8088指令隊列只指令隊列只有有4字節長字節長; 四、四、8088與與8086在內部結構上的比較在內部結構上的比較 對于對于8086微處理器微處理器,當指令隊列緩沖器中有當指令隊列緩沖器中有2個字節變空時個字節變空時,BIU便自動執行取指操作便自動執行取指操作;而而對于對于8088,只要指令隊列緩沖器中有只要指
23、令隊列緩沖器中有1個字節個字節變空便自動執行取指操作變空便自動執行取指操作。第二節第二節8086微處理器引腳功能微處理器引腳功能采用采用40引腳引腳的的DIP( (雙列雙列直插直插) )封裝封裝 采用采用分時復用分時復用技術技術, ,在不同時刻通過相同引腳傳在不同時刻通過相同引腳傳送不同的信息送不同的信息, ,從而減少了引腳數量。從而減少了引腳數量。 在兩種不同的工作方式下在兩種不同的工作方式下, ,部分引腳具有兩種不部分引腳具有兩種不同的功能定義。同的功能定義。 8086是是Intel公司的第三代微處理器公司的第三代微處理器16位微處理位微處理器器。它具有如下特點它具有如下特點:一、引腳功能
24、一、引腳功能 8086的的40條引腳信號按功能分為條引腳信號按功能分為4部分部分,即地址總即地址總線、數據總線、控制總線以及其它線、數據總線、控制總線以及其它( (時鐘和電源時鐘和電源) )引引腳。腳。數據總線用來在數據總線用來在CPU和內存和內存( (或或I/O設備設備) )之間傳遞之間傳遞數據數據,地址總線用于傳送地址總線用于傳送 CPU產生的內存單元產生的內存單元( (或或I/O端口端口) )的地址的地址。前者為前者為16位雙向三態總線位雙向三態總線, ,后者后者為為20位輸出三態總線位輸出三態總線, ,其中其中:1. 地址總線和數據總線地址總線和數據總線 AD15AD0為為地址地址/
25、/數據數據。在每個在每個總線周期的開始總線周期的開始, ,用作地址總線的低用作地址總線的低16位位, ,以給出以給出內存單元內存單元( (或或I/O端口端口) )的地址。其它時間作為數據的地址。其它時間作為數據總線總線, ,用于傳輸數據。用于傳輸數據。 A19A16/ /S6S3為為地址地址/ /狀態狀態分時復用總線。分時復用總線。在每個總線周期開始在每個總線周期開始, ,用作地址總線的高用作地址總線的高4位位, ,以給以給出內存單元的高出內存單元的高4位地址位地址;在在I/O操作時操作時, ,這這4位置位置“0”。在總線周期的其它時間在總線周期的其它時間, ,這這4條信號線指示條信號線指示C
26、PU的狀態信息的狀態信息, ,其中其中, ,S6恒為低電平恒為低電平;S5反映標志反映標志寄存器中寄存器中IF的當前值的當前值;S4和和S3表示正在使用哪個段寄存器。表示正在使用哪個段寄存器。 S4S3狀態狀態( (所使用的寄存器所使用的寄存器) ) 0 0ES0 1SS1 0CS1 1DSBHE/ /S7為為地址高允許地址高允許/ /狀態狀態分時復用引腳分時復用引腳。在總在總線周期的開始線周期的開始, ,作為數據總線高半部分允許信號作為數據總線高半部分允許信號, ,當當BHE/ /S7為低電平時為低電平時, ,將讀將讀/ /寫的寫的8位數據與位數據與AD15AD8接通接通, ,該信號與地址總
27、線的最低位該信號與地址總線的最低位A0配合以決定配合以決定傳送的數據字中高字節是否有效傳送的數據字中高字節是否有效, ,傳送的是傳送的是16位還位還是是8位數據。在總線周期的其它時間位數據。在總線周期的其它時間, ,該引腳輸出備該引腳輸出備用狀態信號用狀態信號S7。2. 控制總線控制總線 控制總線是傳送控制信號的一組信號線控制總線是傳送控制信號的一組信號線, ,其中有些其中有些是輸出線是輸出線, ,用來傳送用來傳送CPU送至其它部件的控制命令送至其它部件的控制命令;有些是輸入線有些是輸入線, ,由外部向由外部向CPU輸入狀態及請求信號輸入狀態及請求信號( (復位、中斷請求等復位、中斷請求等)
28、)。8086的控制總線中有一條的控制總線中有一條MN/ /MX線線,即即最小最小/ /最大最大方式控制線方式控制線, ,用于決定用于決定8086的工作方式的工作方式。當其接當其接+5V時時, ,8086處于最小方式處于最小方式;當其接地時當其接地時, ,8086處于處于最大方式。最大方式。以下幾條不受以下幾條不受MN/ /MX影響的控制線影響的控制線: 讀控制信號讀控制信號RD, ,三態三態, ,輸出。輸出。 準備就緒信號準備就緒信號READY, ,輸入。輸入。 可屏蔽中斷請求信號可屏蔽中斷請求信號INTR, ,輸入。輸入。 非屏蔽中斷請求信號非屏蔽中斷請求信號NMI, ,輸入。當該引腳上產輸
29、入。當該引腳上產 生從低電平到高電平的正跳變時生從低電平到高電平的正跳變時, ,表示外部向表示外部向CPU發出非屏蔽中斷請求。發出非屏蔽中斷請求。 等待測試控制信號等待測試控制信號TEST, ,輸入。輸入。 復位信號復位信號RESET, ,輸入。當其為高電平時輸入。當其為高電平時, ,系統系統進入復位狀態。進入復位狀態。 時鐘信號時鐘信號CLK, ,輸入輸入, ,該信號為該信號為8086提供提供基本的定時脈沖。基本的定時脈沖。 電源電源Vcc, ,輸入。要求接輸入。要求接+5 V10%。 地線地線GND。3. 其它信號其它信號8086有有最小最小和和最大最大兩種基本的工作方式兩種基本的工作方式
30、, ,最小方式最小方式一般用于構成一個小型的一般用于構成一個小型的單處理機系統單處理機系統, ,而而最大方最大方式式一般用于一般用于多處理機系統多處理機系統。 在在最小方式下最小方式下, ,8086微處理器微處理器提供系統所需的全部提供系統所需的全部控制信號控制信號;二、二、8086的工作方式及信號定義的工作方式及信號定義在最大方式下在最大方式下, ,由由總線控制器總線控制器8288提供系統的總線提供系統的總線控制信號。控制信號。vM/ /IO為存儲器為存儲器/ /輸入輸出控制信號輸入輸出控制信號, ,輸出輸出, ,三態。三態。用于指示當前用于指示當前CPU是訪問存儲器是訪問存儲器( (M/
31、/IO為高電平為高電平) )還是還是I/O端口端口( (M/ /IO為低電平為低電平) )。v DEN為數據允許信號為數據允許信號, ,輸出輸出, ,三態。在三態。在CPU訪問訪問存存儲器或儲器或I/O端口的總線周期的后一段時間端口的總線周期的后一段時間, ,該信號該信號有效有效, ,用作系統中總線收發器的允許控制信號。用作系統中總線收發器的允許控制信號。v DT/ /R為數據發送為數據發送/ /接收信號接收信號, ,輸出輸出, ,三態。用于三態。用于指示指示CPU是進行讀操作是進行讀操作( (DT/ /R為低電平為低電平) )還是寫還是寫操作操作( ( DT/ /R為高電平為高電平) )。v
32、WR 寫控制信號寫控制信號,輸出輸出, ,三態三態。用于指示用于指示 CPU在進在進行對存儲器或行對存儲器或I/O進行寫操作進行寫操作。vALE 為地址鎖存允許信號為地址鎖存允許信號( (輸出輸出) )。8086在總線周在總線周期的開始通過地址總線輸出地址的同時期的開始通過地址總線輸出地址的同時,通過該引通過該引腳輸出一個正脈沖腳輸出一個正脈沖,其下降沿用于將地址信息打入其下降沿用于將地址信息打入外部的地址鎖存器中外部的地址鎖存器中。vINTA 為中斷響應信號為中斷響應信號( (輸出輸出, ,三態三態) )。當當8086響應響應來自來自INTR引腳的可屏蔽中斷請求時引腳的可屏蔽中斷請求時,通過
33、該引腳輸通過該引腳輸出連續的兩個負脈沖出連續的兩個負脈沖。三、最小方式下的基本配置三、最小方式下的基本配置時時 鐘鐘發生器發生器CLKREADYRESETMN/ /MXRDWRM/ /IOALEBHEA19A16AD15AD0地地 址址鎖存器鎖存器總總 線線收發器收發器DENDT/ /R存儲器存儲器I/O接口接口VCC8086 CPU數據總線數據總線地址總線地址總線BHE控制控制總線總線v常用的地址鎖存器有常用的地址鎖存器有Intel 8282、Intel8283、74LS273、74LS373等。對等。對8086系統來說系統來說,由于由于要鎖存的信息共有要鎖存的信息共有21位位, ,所以至少
34、需要所以至少需要3片鎖存器片鎖存器芯片芯片, ,每片鎖存每片鎖存8位信息。位信息。v總線收發器用來對總線收發器用來對AD15AD0上的數據進行緩沖上的數據進行緩沖和驅動和驅動,常用的總線收發器還有常用的總線收發器還有74LS245、Intel 8287、8286等。等。v時鐘發生器為時鐘發生器為8086( (8088) )以及其它外設芯片提以及其它外設芯片提供所需的時鐘信號。常用的時鐘發生器供所需的時鐘信號。常用的時鐘發生器/ /驅動器驅動器芯片為芯片為8284。 8088的的地址地址/ /數據復用總線數據復用總線只有只有8條條, ,即即AD7AD0,而而A15A8為單一功能的地址總線。為單一
35、功能的地址總線。四、四、8088與與8086在引腳和系統配置上的區別在引腳和系統配置上的區別 8088無無BHE/ /S7信號。信號。在系統配置上在系統配置上, ,8088同樣有最大模式和最小模式兩同樣有最大模式和最小模式兩種工作方式種工作方式,可以構成單處理機系統可以構成單處理機系統, ,也可構成多處也可構成多處理機系統。只需要一片數據總線收發器用于形成理機系統。只需要一片數據總線收發器用于形成8位系統數據總線。在小規模系統中位系統數據總線。在小規模系統中, ,如只需要用到如只需要用到16根地址總線根地址總線 , ,地址鎖存器也只需要地址鎖存器也只需要2片。片。 8088的存儲器的存儲器/
36、/輸入輸出控制線為輸入輸出控制線為 IO/ /M,當其為當其為高電平時表示訪問高電平時表示訪問I/O端口端口;為低電平時表示訪問存為低電平時表示訪問存儲器。儲器。8086微處理器內部數據通路和寄存器均為微處理器內部數據通路和寄存器均為16位位, ,內內部部ALU只能進行只能進行16位數據的運算位數據的運算, ,在程序中也只能在程序中也只能使用使用16位地址位地址, ,尋址范圍局限在尋址范圍局限在21665536( (64 K) )字節字節, ,為了能尋址為了能尋址1 M字節地址空間字節地址空間, ,必須對內存實必須對內存實行分段管理。行分段管理。第三節第三節 8086系統的存儲器組織系統的存儲
37、器組織 一、存儲器的分段管理一、存儲器的分段管理為什么要分段管理為什么要分段管理?分段方法分段方法8086程序將程序將1 M字節的存儲空間視為一組存儲段字節的存儲空間視為一組存儲段, ,各各段的功能由具體用途而定段的功能由具體用途而定, ,分為分為代碼段代碼段、堆棧段堆棧段、數據段數據段和和附加段附加段。一個存儲段是存儲器的一個邏輯單位一個存儲段是存儲器的一個邏輯單位, ,每個段由連每個段由連續的若干存儲單元構成續的若干存儲單元構成( (最多最多64 K個個),),并且都是存并且都是存儲器中獨立的、可分別尋址的單位。儲器中獨立的、可分別尋址的單位。各段在空間上可以完全重疊各段在空間上可以完全重
38、疊、部分重疊部分重疊, ,可以連續可以連續緊鄰緊鄰, ,也可分開。也可分開。00000H10000H20000H30000H40000HA段段B段段C段段E段段D段段連續緊鄰連續緊鄰部分重疊部分重疊完全重疊完全重疊分開分開實際存儲器實際存儲器邏輯段邏輯段每個段第一個字節的位置稱為每個段第一個字節的位置稱為“段起始地址段起始地址”, ,段段起始地址是一個能被起始地址是一個能被16整除的數整除的數, ,即二進制數的最即二進制數的最后后4位必須是位必須是0。段起始地址中的。段起始地址中的高高16位位( (段基值段基值) )存放于相應的存放于相應的段寄存器段寄存器中。中。2. 邏輯地址邏輯地址是程序員
39、在程序中使用的地址。每個內存是程序員在程序中使用的地址。每個內存單元的邏輯地址由段基值和段內偏移量兩部分構成單元的邏輯地址由段基值和段內偏移量兩部分構成, ,其中段基值確定需要訪問的單元在哪一個段其中段基值確定需要訪問的單元在哪一個段, ,段內段內偏移量確定需要訪問的單元相對于該段起始單元的偏移量確定需要訪問的單元相對于該段起始單元的距離。距離。段基值段基值和和段內偏移量段內偏移量都是都是16位二進制無符位二進制無符號數號數, ,合稱為合稱為32位地址指針位地址指針。由這兩部分就可唯一。由這兩部分就可唯一確定一個內存單元。確定一個內存單元。物理地址物理地址又稱又稱實際地址實際地址PA( (Ph
40、ysical Address),),是是CPU和存儲器進行數據交換時所采用的地址。和存儲器進行數據交換時所采用的地址。3. 物理地址的形成方法物理地址的形成方法給出需要訪問的內存單元的邏輯地址后給出需要訪問的內存單元的邏輯地址后, ,必須首先必須首先由由CPU中的中的BIU將其轉換為物理地址將其轉換為物理地址, ,才能通過系才能通過系統地址總線送至存儲器。統地址總線送至存儲器。由于段基值代表的是需要訪問的單元所在段的起始由于段基值代表的是需要訪問的單元所在段的起始單元地址的單元地址的高高16位位, ,而偏移地址代表需要訪問的單而偏移地址代表需要訪問的單元與段起始單元的元與段起始單元的距離距離,
41、 ,所以在形成指定單元的所以在形成指定單元的20位物理地址時位物理地址時, ,只需將段基值只需將段基值左移左移4位位再加上再加上16位的位的偏移地址即可。偏移地址即可。怎么確定要訪問的單元怎么確定要訪問的單元?16位段基值位段基值16位段內偏移量位段內偏移量 16位段基值位段基值 000020位物理地址位物理地址例如例如, ,假設某內存單假設某內存單元 的 邏 輯 地 址 為元 的 邏 輯 地 址 為1234H:5678H, ,則該則該單元的物理地址為單元的物理地址為: PA=1234H16 +5678H=179B8H。同一個物理地址可對應同一個物理地址可對應多個多個邏輯地址邏輯地址, ,但一
42、個邏輯地但一個邏輯地址址只只對應一個物理地址。對應一個物理地址。操作類型操作類型隱含的段基值隱含的段基值可替換的段基址可替換的段基址偏移地址偏移地址取指令取指令CS無無IP堆棧操作堆棧操作SS無無SPBP用作基址寄存器用作基址寄存器SSCS、DS、ESEA通用數據讀寫通用數據讀寫DSCS、SS、ESEA字符串操作字符串操作( (源地址源地址) )DSCS、SS、ESSI字符串操作字符串操作( (目的地址目的地址) )ESCS、SS、DSDI在程序執行過程中在程序執行過程中, ,需要訪問內存時需要訪問內存時, ,必須提供其邏必須提供其邏輯地址。各種訪問內存單元的操作中輯地址。各種訪問內存單元的操
43、作中, ,邏輯地址的邏輯地址的來源可歸納下表所示。來源可歸納下表所示。EA( (Effective Address) )為有效地址為有效地址, ,相當于段內偏相當于段內偏移量。移量。二、存儲器組織二、存儲器組織在某些情況下在某些情況下, ,8086系統還需要在內存單元中存儲系統還需要在內存單元中存儲32位的地址指針位的地址指針, ,此時此時, ,32位地址指針中的段基值和位地址指針中的段基值和偏移地址作為兩個偏移地址作為兩個16位字數據分別存入連續的位字數據分別存入連續的4個內個內存單元存單元, ,其中其中, ,偏移地址偏移地址存入存入地址較小地址較小的單元的單元, ,段基值段基值存入存入地址
44、較大地址較大的單元的單元。8086系統地址總線有系統地址總線有20條條, ,可以尋址可以尋址1 M( (220) )字節字節的內存空間的內存空間, ,內存空間都按內存空間都按字節字節組織組織, ,每個內存單元每個內存單元存儲一個存儲一個字節字節的數據的數據, ,并具有一個并具有一個唯一的唯一的20位地址位地址編號編號, ,稱為字節地址稱為字節地址。如果存放。如果存放16位的字數據位的字數據, ,則需則需要占用連續的兩個單元要占用連續的兩個單元,其中其中高字節存放在高地址高字節存放在高地址, ,低字節存放在低地址低字節存放在低地址, ,并并以該單元地址以該單元地址作為該作為該字數據字數據的字地址
45、的字地址。數據類型包括數據類型包括:字節數據字節數據: 8 位二進制數位二進制數;字字 數數 據據: 16位二進制數位二進制數;雙字數據雙字數據: 32位二進制數位二進制數;地址指針地址指針: 32位邏輯地址。位邏輯地址。20000H20001H20002H20003H字節數據字節數據12H字數據字數據3412H地址指針地址指針7856H:3412H20000H20001H20002H20003H12H20000H20001H20002H20003H12H34H12H34H56H78H規則字與非規則字規則字與非規則字8086CPU讀寫讀寫16位字數據時位字數據時, ,總是從低位庫開始。總是從低
46、位庫開始。定義從低位庫地址開始存放的字數據為定義從低位庫地址開始存放的字數據為規則字規則字;即即從高位庫開始存放字數據為從高位庫開始存放字數據為非規則字非規則字。CPU讀寫內存中的規則字只需讀寫內存中的規則字只需一個一個總線周期總線周期, ,而讀而讀寫非規則字則需要寫非規則字則需要兩個兩個總線周期。總線周期。8086系統中將系統中將1 M字節的內存單元均分為兩個存儲字節的內存單元均分為兩個存儲分體分體, ,每個分體包括每個分體包括512 K個單元個單元, ,分別稱為分別稱為高位庫高位庫和和低位庫低位庫。低位庫低位庫中的所有單元地址為中的所有單元地址為偶數偶數, ,高位庫高位庫中中的所有單元地址
47、為的所有單元地址為奇數奇數。每個分體的數據線分別與。每個分體的數據線分別與系統數據總線的系統數據總線的高高8位位和和低低8位位相連。相連。 為了不影響程序的執行速度為了不影響程序的執行速度, ,字數據在內存中應盡字數據在內存中應盡量按規則字格式存放。量按規則字格式存放。20001H20003H20005H20000H20002H20004H高位庫高位庫 低位庫低位庫規則字規則字1234H34H12H20001H20003H20005H高位庫高位庫 低位庫低位庫非規則字非規則字1234H12H34H用作堆棧的區域稱為堆棧段最多包含用作堆棧的區域稱為堆棧段最多包含64 K個單元。個單元。堆棧段在內存中的位置由堆棧段寄存器堆棧段在內存中的位置由堆棧段寄存器SS和堆棧指和堆棧指針針SP來指示。來指示。SS中存放堆棧段的首地址中存放堆棧段的首地址, ,SP中存放中存放棧頂單元的偏移地址。棧頂單元的偏移地址。 8086CPU規定堆棧操作總是按字進行規定堆棧操作總是按字進行。入棧和出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中音樂教材開發計劃
- 學校衛生工作總結范文
- 志愿服務以案促改宣講學習心得體會
- 2025部編版小學五年級下冊語文課堂教學方案計劃
- 爆破三大員崗位職責與技能提升他
- 2025年校企合作教學實踐計劃
- 羽毛球賽事裁判培訓計劃
- 重載道路混凝土路面質量控制措施
- 幼兒園教師繼續教育規劃計劃
- 人教版四年級語文下冊錯題集分單元教學計劃
- 小學升初中入學測試寧外入學試卷
- 廣東省茂名市各縣區鄉鎮行政村村莊村名明細
- 企業培訓5W2H分析法(31P PPT)
- 2022年新高一入學分班考試數學試卷03(含答案)
- QC080000有害物質過程管理體系內部審核檢查表
- 勝動燃氣發電機組基本構造與工作原理課件
- 七年級數學下冊一元一次不等式組說課稿人教新課標版
- 校長專業水平測試題
- 腹腔鏡膽囊切除術后護理查房
- 配電架空線路驗收規范表
- 壓力分散型錨索張拉方案
評論
0/150
提交評論