《微型計算機原理》(王忠民版)PPT電子課件教案第3章80x86微處理器
《《微型計算機原理》(王忠民版)PPT電子課件教案第3章80x86微處理器》由會員分享,可在線閱讀,更多相關(guān)《《微型計算機原理》(王忠民版)PPT電子課件教案第3章80x86微處理器(235頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第3章 80 x86微處理器 第3章 80 x86微處理器 3.1 80 x86微處理器簡介微處理器簡介3.2 8086/8088微處理器微處理器3.3 8086/8088存儲器和存儲器和I/O組織組織 3.4 從從80286到到Pentium系列的技術(shù)發(fā)展系列的技術(shù)發(fā)展 第3章 80 x86微處理器 3.1 80 x86微處理器簡介 80 x86微處理器是美國Intel 公司生產(chǎn)的系列微處理器。該公司成立于1968年,1969年就設計了4位的4004 芯片,1973年開發(fā)出8位的8080芯片,1978年正式推出16位的8086微處理器芯片,由此開始了Intel公司的80 x86系列微處理器的
2、生產(chǎn)歷史。本節(jié)簡要介紹Intel公司80 x86系列微處理器的發(fā)展過程及其特性。 表3.1給出了80 x86系列微處理器概況。下面通過對表中有關(guān)技術(shù)數(shù)據(jù)的分析來說明Intel 80 x86系列微處理器的發(fā)展情況。 第3章 80 x86微處理器 表中“集成度”是指CPU芯片中所包含的晶體管數(shù)。 “主頻”是指芯片所使用的主時鐘頻率,它直接影響計算機的運行速度。 “數(shù)據(jù)總線”是計算機中各個組成部件間進行數(shù)據(jù)傳送時的公共通道,“內(nèi)數(shù)據(jù)總線寬度”是指CPU芯片內(nèi)部數(shù)據(jù)傳送的寬度(位數(shù)),“外數(shù)據(jù)總線寬度”是指CPU與外部交換數(shù)據(jù)時的數(shù)據(jù)寬度,顯然,數(shù)據(jù)總線位數(shù)越多,數(shù)據(jù)交換的速度就越快。 第3章 80
3、x86微處理器 “地址總線”是在對存儲器或I/O端口進行訪問時,傳送 由CPU提供的要訪問的存儲單元或I/O端口的地址信息的總線,其寬度決定了處理器能直接訪問的主存容量大小。如8086有20根地址線,使用這20根地址線上不同地址信息的組合,可直接對220=1M個存儲單元進行訪問;Pentium II有36根地址線,因此它可直接尋址的最大地址范圍為236=64G。 第3章 80 x86微處理器 高速緩沖存儲器Cache的使用,大大減少了CPU讀取指令和操作數(shù)所需的時間,使CPU的執(zhí)行速度顯著提高。為了滿足微型計算機對存儲器系統(tǒng)高速度、大容量、低成本的要求,目前,微型計算機系統(tǒng)采用如圖3.1所示的
4、三級存儲器組織結(jié)構(gòu),即由高速緩沖存儲器Cache、主存和外存組成。 第3章 80 x86微處理器 表表3.1 80 x86系列微處理器概況系列微處理器概況 第3章 80 x86微處理器 當前正在執(zhí)行的程序或要使用的數(shù)據(jù)必須從外存調(diào)入主存后才能被CPU讀取并執(zhí)行,主存容量通常為MB級(理論上可達GB級,如Pentium II可配置的內(nèi)存最大容量可達236=64G,但事實上,基于成本和必要性考慮,目前,微型計算機內(nèi)存配置一般都不會達到其理論允許值);當前沒有使用的程序可存入外存,如硬盤、軟盤、光盤等,外存的容量通常很大,可達GB甚至TB級;而高速緩沖存儲器的最大特點是存取速度快,但容量較小,通常為
5、KB級,將當前使用頻率較高的程序和數(shù)據(jù)通過一定的替換機制從主存放入Cache,CPU在取指令或讀取操作數(shù)時,同時對Cache和主存進行訪問,如果Cache命中,則終止對主存的訪問,直接從Cache中將指令或數(shù)據(jù)送CPU處理,由于Cache的速度比主存快得多,因此,Cache的使用大大提高了CPU讀取指令或數(shù)據(jù)的速度。 第3章 80 x86微處理器 高速緩沖存儲器(Cache) 微處理器CPU 主存儲器(主存) 外存儲器(外存)圖3.1 存儲器三級結(jié)構(gòu) 第3章 80 x86微處理器 80386之前的CPU都沒有Cache。80386 CPU內(nèi)無Cache,而由與之配套使用的Intel 82385
6、 Cache 控制器實現(xiàn)CPU之外的Cache管理。80486之后的CPU芯片內(nèi)部都集成了一至多個Cache。 需要說明的是,80 x86CPU在發(fā)展過程中,存儲器的管理機制發(fā)生了較大變化。8086/8088CPU對存儲器的管理采用的是分段的實方式;80286CPU除了可在實方式下工作外,還可以在保護方式下工作;而80386CPU之后的處理器則具有三種工作方式:實方式、保護方式和虛擬8086方式。 第3章 80 x86微處理器 在保護方式下,機器可提供虛擬存儲管理和多任務管理機制。虛擬存儲的實現(xiàn),為用戶提供了一個比實際主存空間大得多的程序地址空間,從而可使用戶程序的大小不受主存空間的限制。多任
7、務管理機制的實現(xiàn),可允許多個用戶或一個用戶的多個任務同時在機器上運行。 從80386開始,微處理器除支持實方式和保護方式外,又增加了一種虛擬8086方式。在這種方式下,一臺機器可以同時模擬多個8086處理器的工作。有關(guān)存儲器管理機制的詳細介紹,請參閱3.4.2 “80 x86存儲器管理”一節(jié)。 第3章 80 x86微處理器 3.2 8086/8088微處理器微處理器 8086是Intel系列的16位微處理器。使用HMOS工藝制造,芯片上集成了2.9萬個晶體管,用單一的+5V電源供電,封裝在標準的40引腳雙列直插式管殼內(nèi),時鐘頻率5MHz10MHz。 8086有16條數(shù)據(jù)總線,可以處理8位或16
8、位數(shù)據(jù)。有20條地址總線,可以直接尋址1M(220)字節(jié)的存儲單元和64K個I/O端口。在8086推出后不久,為方便原8位機用戶,Intel公司很快推出了8088微處理器,其指令系統(tǒng)與8086完全兼容,CPU內(nèi)部結(jié)構(gòu)仍為16位,但外部數(shù)據(jù)總線是8位的,這樣設計的目的主要是為了與原有的8位外圍接口芯片兼容。并以8088為CPU組成了IBM PC、PC/XT等準16位微型計算機,由于其性能價格比高,很快占領(lǐng)了市場。 第3章 80 x86微處理器 3.2.1 8086/8088內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 一總線接口單元一總線接口單元BIU 總線接口單元BIU的功能是負責完成CPU與存儲器或I/O設備之間的數(shù)據(jù)
9、傳送。具體任務是: 指令隊列出現(xiàn)空字節(jié)(8088CPU 1個空字節(jié),8086CPU 2個空字節(jié))時,從內(nèi)存取出后續(xù)指令。BIU取指令時,并不影響EU的執(zhí)行,兩者并行工作,大大提高了CPU的執(zhí)行速度。 EU需要從內(nèi)存或外設端口讀取操作數(shù)時,根據(jù)EU給出的地址從內(nèi)存或外設端口讀取數(shù)據(jù)供EU使用 第3章 80 x86微處理器 EU的運算結(jié)果、數(shù)據(jù)或控制命令等由BIU送往指定的內(nèi)存單元或外設端口。 總線接口單元內(nèi)有4個16位段寄存器:代碼段寄存器CS(Code Segment)、數(shù)據(jù)段寄存器DS(Data Segment)、堆棧段寄存器SS(Stack Segment)和附加數(shù)據(jù)段寄存器ES(Extr
10、a Segment),一個16位的指令指針寄存器IP(Instruction Pointer),一個20位地址加法器,6字節(jié)指令隊列緩沖器,一個與EU通訊的內(nèi)部寄存器以及總線控制電路等。 第3章 80 x86微處理器 圖圖3.2 8086CPU內(nèi)部結(jié)構(gòu)框圖內(nèi)部結(jié)構(gòu)框圖 AHALBHBLCHCLDHDL通用寄存器SPBPSIDI數(shù) 據(jù)寄存器指針和變址寄存器ALU數(shù)據(jù)總線(16位)暫存寄存器EU控制電路AXBXCXDX標志寄存器執(zhí)行單元(EU)總線接口單元(BIU)1 2 3 4 5 6指令隊列緩沖器(8位)內(nèi)部寄存器IPESSSDSCSALUDB(16位)AB(20位)總線控制電 路8086總線
11、DB(16位)地址加法器第3章 80 x86微處理器 1段寄存器段寄存器 8086CPU的地址引腳有20根,能提供20位的地址信息,可直接對1M個存儲單元進行訪問,但CPU內(nèi)部可用來提供地址信息的寄存器都是16位的,那么如何用16位寄存器實現(xiàn)20位地址的尋址呢?8086/8088采用了段結(jié)構(gòu)的內(nèi)存管理的方法。 將指令代碼和數(shù)據(jù)分別存儲在代碼段、數(shù)據(jù)段、堆棧段、附加數(shù)據(jù)段中,這些段的段地址分別由段寄存器CS、DS、SS、ES提供,而代碼或數(shù)據(jù)在段內(nèi)的偏移地址則由有關(guān)寄存器或立即數(shù)給出。 第3章 80 x86微處理器 代碼段寄存器CS存儲程序當前使用的代碼段的段地址。代碼段用來存放程序的指令代碼。
12、下一條要讀取指令在代碼段中的偏移地址由指令指針寄存器IP提供;數(shù)據(jù)段寄存器DS用來存放程序當前使用的數(shù)據(jù)段的段地址。一般來說,程序中所用到的原始數(shù)據(jù)、中間結(jié)果以及最終結(jié)果都存放在數(shù)據(jù)段中,如果程序中使用了字符串處理指令,則源字符串也存放在數(shù)據(jù)段中;堆棧段寄存器SS用來存放程序當前所使用的堆棧段的段地址。堆棧是在存儲器中開辟的一個特定區(qū)域,詳見3.3.4 “堆棧操作”一節(jié)。附加數(shù)據(jù)段寄存器ES用來存放程序當前使用的附加數(shù)據(jù)段的段地址。附加數(shù)據(jù)段通常用于存放字符串操作時的目的字符串。 程序員在編寫匯編語言源程序時,應該按照上述規(guī)定將程序的各個部分放在規(guī)定的段內(nèi)。每個源程序必須至少有一個代碼段,而數(shù)
13、據(jù)段、堆棧段和附加數(shù)據(jù)段則根據(jù)程序的需要決定是否設置。 第3章 80 x86微處理器 2指令指針寄存器指令指針寄存器 指令指針寄存器IP用來存放下一條要讀取的指令在代碼段中的偏移地址。IP在程序運行中能自動加1修正,從而使其始終存放的是下一條要讀取的指令在代碼段的偏移地址。由于CS和IP的內(nèi)容決定了程序的執(zhí)行順序,因此程序員不能直接用賦值指令對其內(nèi)容進行修改。有些指令能使IP和CS的值改變(如跳轉(zhuǎn)指令)或使其值壓入堆?;驈亩褩V袕棾龌謴驮担ㄈ缱映绦蛘{(diào)用指令和返回指令)。 第3章 80 x86微處理器 320位地址加法器位地址加法器 8086/8088CPU在對存儲單元進行訪問以讀取指令或讀/
14、寫操作數(shù)時,必須在地址總線上提供20位的地址信息,以便選中對應的存儲單元。那么,CPU是如何產(chǎn)生20位地址的呢? CPU提供的用來對存儲單元進行訪問的20位地址是由BIU中的地址加法器產(chǎn)生的。 第3章 80 x86微處理器 存儲器中每個存儲單元的地址可有以下兩種表示方式: 邏輯地址邏輯地址:其表達形式為“段地址:段內(nèi)偏移地址”。段內(nèi)偏移地址又稱為“有效地址EA(Effective Address)。在讀指令時,段地址由代碼段寄存器CS提供,當前要讀取指令在代碼段中的偏移地址由指令指針寄存器IP提供;在讀取或存儲操作數(shù)時,根據(jù)具體操作,段地址由DS、ES或SS提供,段內(nèi)偏移地址由指令給出。 第3
15、章 80 x86微處理器 物理地址物理地址:CPU與存儲器進行數(shù)據(jù)交換時在地址總線上提供的20位地址信息稱為物理地址。物理地址的形成過程如圖3.3所示。當由IP提供或由EU根據(jù)指令所提供尋址方式計算出尋址單元的16位段內(nèi)偏移地址后,把該偏移地址和段寄存器內(nèi)容左移四位后(相當于乘以10H)得到的段基址(段內(nèi)第一個存儲單元的物理地址)同時送到BIU中的地址加法器,形成一個20位的物理地址,從而實現(xiàn)對存儲單元的訪問。由邏輯地址求物理地址的公式為:物理地址=段地址10H+段內(nèi)偏移地址 如假設當前(CS)=20A8H,(IP)=2008H,那么,下一條從內(nèi)存中讀取的指令所在存儲單元的物理地址為:20A8
16、H10H+ 2008H=22A88H。 第3章 80 x86微處理器 015段內(nèi)偏移地址段寄存器190340000段地址左移4位20位物理地址190圖3.3 物理地址的形成 第3章 80 x86微處理器 4. 指令隊列緩沖器指令隊列緩沖器 8086的指令隊列有6個字節(jié),8088的指令隊列有4個字節(jié)。對8086而言,當指令隊列出現(xiàn)2個空字節(jié),對8088而言,指令隊列出現(xiàn)1個空字節(jié)時,BIU就自動執(zhí)行一次取指令周期,將下一條要執(zhí)行的指令從內(nèi)存單元讀入指令隊列。它們采用“先進先出”原則,按順序存放,并按順序取到EU中去執(zhí)行。 當EU執(zhí)行一條需要到存儲器或I/O端口讀取操作數(shù)的指令時,BIU將在執(zhí)行完
17、現(xiàn)行取指令的存儲器周期后的下一個存儲周期,對指令所指定的存儲單元或I/O端口進行訪問,讀取的操作數(shù)經(jīng)BIU送EU進行處理。當EU執(zhí)行跳轉(zhuǎn)、子程序調(diào)用或返回指令時,BIU就使指令隊列復位,并從指令給出的新地址開始取指令,新取的第1條指令直接經(jīng)指令隊列送EU執(zhí)行,隨后取來的指令將填入指令隊列緩沖器。 第3章 80 x86微處理器 指令隊列的引入使得EU和BIU可并行工作,即BIU在讀指令時,并不影響EU單元執(zhí)行指令,EU單元可以連續(xù)不斷地直接從指令隊列中取到要執(zhí)行的指令代碼,從而減少了CPU為取指令而等待的時間,提高了CPU的利用率,加快了整機的運行速度。 第3章 80 x86微處理器 二執(zhí)行單元
18、二執(zhí)行單元EU 執(zhí)行單元EU不與系統(tǒng)外部直接相連,它的功能只是負責執(zhí)行指令。執(zhí)行的指令從BIU的指令隊列緩沖器中直接得到,執(zhí)行指令時若需要從存儲器或I/O端口讀取操作數(shù)時,由EU向BIU發(fā)出請求,再由BIU對存儲器或I/O端口進行訪問。EU由下列部件組成: 1. 16位算術(shù)邏輯單元(ALU):用于進行算術(shù)和邏輯運算。 2. 16位標志寄存器FLAGS:用來存放CPU運算的狀態(tài)特征和控制標志。 3. 數(shù)據(jù)暫存寄存器:協(xié)助ALU完成運算,暫存參加運算的數(shù)據(jù)。 第3章 80 x86微處理器 4. 通用寄存器:包括4個16位數(shù)據(jù)寄存器AX、BX、CX、DX和4個16位指針與變址寄存器SP、BP與SI、
19、DI。 5. EU控制電路:它是控制、定時與狀態(tài)邏輯電路,接收從BIU中指令隊列取來的指令,經(jīng)過指令譯碼形成各種定時控制信號,對EU的各個部件實現(xiàn)特定的定時操作。 8088CPU內(nèi)部結(jié)構(gòu)與8086基本相似,兩者的執(zhí)行單元EU完全相同,其指令系統(tǒng),尋址方式及程序設計方法都相同,所以兩種CPU完全兼容。區(qū)別僅在于總線接口單元BIU,歸納起來主要有以下幾個方面的差異: 第3章 80 x86微處理器 1外部數(shù)據(jù)總線位數(shù)不同。8086外部數(shù)據(jù)總線16位,在一個總線周期內(nèi)可以輸入/輸出一個字(16位數(shù)據(jù)),而8088外部數(shù)據(jù)總線8位,在一個總線周期內(nèi)只能輸入/輸出一個字節(jié)(8位數(shù)據(jù))。 2指令隊列緩沖器大
20、小不同。8086指令隊列可容納6個字節(jié),且在每一個總線周期中從存儲器取出2個字節(jié)的指令代碼填入指令隊列;而8088指令隊列只能容納4個字節(jié),在一個機器周期中取出一個字節(jié)的指令代碼送指令隊列。 3.部分引腳的功能定義有所區(qū)別。 第3章 80 x86微處理器 3.2.2 8086/8088寄存器結(jié)構(gòu)寄存器結(jié)構(gòu) 圖3.4 8086/8088CPU內(nèi)部寄存器結(jié)構(gòu) AHBHCHDHALBLCLDL158 70AXBXCXDX累加器基址寄存器計數(shù)寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器150SPBPSIDI150CSDSSSES150IPFLAGS堆棧指針寄存器基址寄存器源變址寄存器目的變址寄存器指針寄存器變址寄存器代
21、碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加數(shù)據(jù)段寄存器段寄存器指令指針寄存器狀態(tài)標志寄存器控制寄存器通用寄存器第3章 80 x86微處理器 一通用寄存器一通用寄存器 通用寄存器包括四個數(shù)據(jù)寄存器,兩個地址指針寄存器和兩個變址寄存器。 1數(shù)據(jù)寄存器數(shù)據(jù)寄存器AX、BX、CX、DX 數(shù)據(jù)寄存器一般用于存放參與運算的操作數(shù)或運算結(jié)果。每個數(shù)據(jù)寄存器都是16位的,但又可將高、低8位分別作為兩個獨立的8位寄存器來用。高8位分別記作AH、BH、CH、DH,低8位分別記作AL,BL,CL,DL。例如AX可當作兩個8位寄存器AH、AL使用。注意,8086/8088 CPU的14個寄存器除了這4個16位寄存器能分別
22、當作兩個8位寄存器來用之外,其它寄存器都不能如此使用。 第3章 80 x86微處理器 上述4個寄存器一般用來存放數(shù)據(jù),但它們各自都有自己的特定用途: AX(Accumulator)稱為累加器。用該寄存器存放運算結(jié)果可使指令簡化,提高指令的執(zhí)行速度。此外,所有的I/O指令都使用該寄存器與外設端口交換信息。 BX(Base)稱為基址寄存器。8086/8088CPU中有兩個基址寄存器BX和BP。BX用來存放操作數(shù)在內(nèi)存中數(shù)據(jù)段內(nèi)的偏移地址,BP用來存放操作數(shù)在堆棧段內(nèi)的偏移地址。 第3章 80 x86微處理器 CX(Counter)稱為計數(shù)器。在設計循環(huán)程序時使用該寄存器存放循環(huán)次數(shù),可使程序指令簡
23、化,有利于提高程序的運行速度。 DX(Data)稱為數(shù)據(jù)寄存器。在寄存器間接尋址的I/O指令中存放I/O端口地址;在做雙字長乘除法運算時,DX與AX一起存放一個雙字長操作數(shù),其中DX存放高16位數(shù)。 第3章 80 x86微處理器 2. 地址指針寄存器地址指針寄存器SP、BP SP(Stack Pointer)稱為堆棧指針寄存器。在使用堆棧操作指令(PUSH或POP)對堆棧進行操作時,每執(zhí)行一次進?;虺鰲2僮?,系統(tǒng)會自動將SP的內(nèi)容減2或加2,以使其始終指向棧頂。 BP(Base Pointer)稱為基址寄存器。作為通用寄存器,它可以用來存放數(shù)據(jù),但更經(jīng)常更重要的用途是存放操作數(shù)在堆棧段內(nèi)的偏移
24、地址。 第3章 80 x86微處理器 3.變址寄存器變址寄存器SI、DI SI(Source Index)稱為源變址寄存器。DI(Destination Index)稱為目的變址寄存器。這兩個寄存器通常用在字符串操作時存放操作數(shù)的偏移地址,其中SI存放源串在數(shù)據(jù)段內(nèi)的偏移地址,DI存放目的串在附加數(shù)據(jù)段內(nèi)的偏移地址。 第3章 80 x86微處理器 二二 .段寄存器段寄存器 為了對1M個存儲單元進行管理,8086/8088對存儲器進行分段管理,即將程序代碼或數(shù)據(jù)分別放在代碼段、數(shù)據(jù)段、堆棧段或附加數(shù)據(jù)段中,每個段最多可達64K個存儲單元。段地址分別放在對應的段寄存器中,代碼或數(shù)據(jù)在段內(nèi)的偏移地址
25、由有關(guān)寄存器或立即數(shù)給出。8086/8088的四個段寄存器分別為: CS(Code Segment)稱為代碼段寄存器,用來存儲程序當前使用的代碼段的段地址。CS的內(nèi)容左移四位再加上指令指針寄存器IP的內(nèi)容就是下一條要讀取的指令在存儲器中的物理地址。 第3章 80 x86微處理器 DS(Data Segment)稱為數(shù)據(jù)段寄存器,用來存放程序當前使用的數(shù)據(jù)段的段地址。DS的內(nèi)容左移四位再加上按指令中存儲器尋址方式給出的偏移地址即得到對數(shù)據(jù)段指定單元進行讀寫的物理地址。 SS(Stack Segment)稱為堆棧段寄存器,用來存放程序當前所使用的堆棧段的段地址。堆棧是存儲器中開辟的按先進后出原則組
26、織的一個特殊存儲區(qū),主要用于調(diào)用子程序或執(zhí)行中斷服務程序時保護斷點和現(xiàn)場。 ES(Extra Segment)稱為附加數(shù)據(jù)段寄存器,用來存放程序當前使用的附加數(shù)據(jù)段的段地址。附加數(shù)據(jù)段用來存放字符串操作時的目的字符串。 第3章 80 x86微處理器 表表3.2 8086/8088段寄存器與提供段內(nèi)移地址的寄存器之間的默認組合 段寄存器 提供段內(nèi)偏移地址的寄存器 CS IP DS BX、SI、DI或一個16位數(shù) SS SP或BP ES DI(用于字符串操作指令)第3章 80 x86微處理器 三三. 控制寄存器控制寄存器 IP(Instruction Pointer)稱為指令指針寄存器,用來存放下
27、一條要讀取的指令在代碼段內(nèi)的偏移地址。用戶程序不能直接訪問IP。 FLAGS稱為標志寄存器,它是一個16位的寄存器,但只用了其中9位,這9位包括6個狀態(tài)標志位,3個控制標志位,如圖3.5所示。 第3章 80 x86微處理器 圖3.5 8086/8088的標志寄存器 OF1511DF10IF9TF8SF7ZF6AF4PF2CF0控制標志位:TF、IF、DF狀態(tài)標志位:CF、PF、AF、ZF、SF、OF第3章 80 x86微處理器 1. 狀態(tài)標志位狀態(tài)標志位 狀態(tài)標志位用來反映算術(shù)和邏輯運算結(jié)果的一些特征。如結(jié)果是否為“0”,是否有進位、借位、溢出等。不同指令對狀態(tài)標志位的影響是不同的。下面分別介
28、紹這6個狀態(tài)標志位的功能。 CF(Carry Flag)進位標志。當進行加減運算時,若最高位發(fā)生進位或借位則CF為1,否則為0。通常用于判斷無符號數(shù)運算結(jié)果是否超出了計算機所能表示的無符號數(shù)的范圍。 PF(Parity Flag)奇偶標志位。當指令執(zhí)行結(jié)果的低8位中含有偶數(shù)個1時,PF為1,否則為0。 第3章 80 x86微處理器 AF(Auxiliary Flag)輔助進位標志位。當執(zhí)行一條加法或減法運算指令時,若結(jié)果的低字節(jié)的低4位向高4位有進位或借位,則AF為1,否則為0。 ZF(Zero Flag)零標志位。若當前的運算結(jié)果為0,則ZF為1,否則為0。 SF(Sign Flag)符號標
29、志位。當運算結(jié)果的最高位為1時,SF=1,否則為0。 OF(Overflow Flag)溢出標志位。當運算結(jié)果超出了帶符號數(shù)所能表示的數(shù)值范圍,即溢出時,OF=1,否則為0。用來判斷帶符號數(shù)運算結(jié)果是否溢出。 第3章 80 x86微處理器 例例3.1 設變量x=11101111B,y=11001000B,X=0101101000001010B,Y=01001100 10100011B,請問分別執(zhí)行x+y和X+Y操作后標志寄存器中各狀態(tài)位的狀態(tài)如何? 11101111 +) 11001000 10110111 1自動丟失0101101000001010 0100110010100011 1010
30、011010101101CF=0CF=1DF=1第3章 80 x86微處理器 狀態(tài)位執(zhí)行x+y后執(zhí)行X+Y后CF最高位D7向前有進位,CF=1最高位D15向前沒有進位,CF=0PF低8位中1的個數(shù)為偶數(shù)(6),PF=1低8位中1的個數(shù)為奇數(shù)(5),PF=0AF低4位向前有進位,AF=1低4位向前沒有進位,AF=0ZF計算結(jié)果不為0,ZF=0計算結(jié)果不為0,ZF=0SF最高位D7為1,SF=1最高位D15為1,SF=1OFCFDF=0,沒有溢出,OF=0CFDF=1,結(jié)果溢出,OF=1第3章 80 x86微處理器 2. 控制標志位控制標志位 控制標志位有3個,用來控制CPU的操作,由程序設置或清
31、除。它們是: TF(Trap Flag)跟蹤(陷阱)標志位。它是為測試程序的方便而設置的。若將TF置1,8086/8088CPU處于單步工作方式,否則,將正常執(zhí)行程序。 IF(Interrupt Flag)中斷允許標志位。是用來控制可屏蔽中斷的控制標志位。若用STI指令將IF置1,表示允許CPU接受外部從INTR引腳上發(fā)來的可屏蔽中斷請求信號;若用CLI指令將IF清0,則禁止CPU接受可屏蔽中斷請求信號。IF的狀態(tài)對非屏蔽中斷及內(nèi)部中斷沒有影響。 第3章 80 x86微處理器 DF(Direction Flag)方向標志位。若用STD將DF置1,串操作按減地址方式進行,也就是說,從高地址開始,
32、每操作一次地址自動遞減;若用CLD將DF清0,則串操作按增地址方式進行,即每操作一次地址自動遞增。 注意注意:有關(guān)寄存器,尤其是在存儲器尋址時用來存放操作數(shù)在段內(nèi)偏移地址的地址寄存器和標志寄存器中各控制標志位的使用方法,將在后續(xù)章節(jié)中涉及到時還將進一步詳細介紹,請讀者務必熟練掌握。 第3章 80 x86微處理器 3.2.3 總線周期的概念總線周期的概念 為了便于對8086/8088CPU引腳功能的說明,本節(jié)簡要介紹總線周期的概念。 8086/8088CPU在與存儲器或I/O端口交換數(shù)據(jù)時需要啟動一個總線周期。按照數(shù)據(jù)的傳送方向來分,總線周期可分為“讀”總線周期(CPU從存儲器或I/O端口讀取數(shù)
33、據(jù))和“寫”總線周期(CPU將數(shù)據(jù)寫入存儲器或I/O端口)。 第3章 80 x86微處理器 8086/8088CPU基本的總線周期由4個時鐘周期組成,如圖3.6所示。時鐘周期是CPU的基本時間計量單位,由CPU主頻決定,如8086的主頻為5MHz,1個時鐘周期就是200ns。一個時鐘周期又稱為一個T狀態(tài),因此基本總線周期用T1、T2、T3、T4表示。圖3.6(a)給出典型的總線周期波形圖。在T1狀態(tài)CPU把要讀/寫的存儲單元的地址或I/O端口的地址放到地址總線上。若是“寫”總線周期,CPU從T2起到T4,把數(shù)據(jù)送到總線上,并寫入存儲器單元或I/O端口;若是“讀”總線周期,CPU則從T3起到T4
34、從總線上接收數(shù)據(jù),T2狀態(tài)時總線浮空,允許CPU有個緩沖時間把輸出地址的寫方式轉(zhuǎn)換成輸入數(shù)據(jù)的讀方式。 第3章 80 x86微處理器 圖3.6 8086/8088基本總線周期 地址輸出地址/數(shù)據(jù)緩沖數(shù)據(jù)輸入地址輸出地址輸出地址/數(shù)據(jù)數(shù)據(jù)輸出地址輸出T1T2T3T4T1T2總線周期總線周期CLK(a)T1T2T3T4T1T1T1T1T1T2T3總線周期空閑狀態(tài)總線周期(b)T1T2T3T4T1CLK(c)READYTW第3章 80 x86微處理器 圖3.6(b)是具有空閑狀態(tài)的總線周期。如果在一個總線周期之后不立即執(zhí)行下一個總線周期,即CPU此時執(zhí)行的指令不需要對存儲器或I/O端口進行訪問,且目
35、前指令隊列滿而不需要到內(nèi)存中讀指令,那么系統(tǒng)總線就處于空閑狀態(tài),即執(zhí)行空閑周期。在空閑周期中可包括一個或多個時鐘周期,在這期間,在高4位的總線上,CPU仍驅(qū)動前一個總線周期的狀態(tài)信息;而在低16位的總線上,則根據(jù)前一個總線周期是讀還是寫周期來決定。若前一個周期為寫周期,CPU會在總線的低16位繼續(xù)驅(qū)動數(shù)據(jù)信息;若前一個總線周期為讀周期,CPU則使總線的低16位處于浮空狀態(tài)。在空閑周期,盡管CPU對總線進行空操作,但在CPU內(nèi)部,仍然進行著有效的操作,如執(zhí)行某個運算、在內(nèi)部寄存器之間傳送數(shù)據(jù)等。 第3章 80 x86微處理器 圖3.6(c)是具有等待狀態(tài)的總線周期。在T3狀態(tài)結(jié)束之前,CPU測試
36、READY信號線,如果為有效的高電平,則說明數(shù)據(jù)已準備好,可進入T4狀態(tài);若READY為低電平,則說明數(shù)據(jù)沒有準備好,CPU在T3之后插入1個或多個等待周期TW,直到檢測到READY為有效高電平后,CPU會自動脫離TW而進入T4狀態(tài)。這種延長總線周期的措施允許系統(tǒng)使用低速的存儲器芯片。 第3章 80 x86微處理器 3.2.4 8086/8088引腳及其功能引腳及其功能 圖3.7 8086/8088CPU引腳 GND8086CPU12345678910111213141516171819202122232425262728293031323334353637383940AD14AD13AD12
37、AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDRESETREADYTEST)QS(INTA1ALE(QS0)S(DEN0)S(RDT1/)S(IOM2/)LOCK(WR)GT/RQ(HOLD0RDMX/MN7SBHE/A19 /S6A18 /S5A17 /S4A16 /S3AD15VCC(5 V)GT/RQ(HLDA1GND8088CPU12345678910111213141516171819202122232425262728293031323334353637383940A14A13A12A11A10A9A8AD7AD6AD5AD4
38、AD3AD2AD1AD0NMIINTRCLKGNDRESETREADYTEST)QS(INTA1ALE(QS0)S(DEN0)S(R/DT1)S(M/IO2)LOCK(WR)GT/RQ(HOLD0RDMX/MN)HIGH/(SS0A19 /S6A18 /S5A17 /S4A16 /S3A15VCC(5 V)GT/RQ(HLDA1第3章 80 x86微處理器 8086/8088芯片的引腳應包括20根地址線,16根(8086)或8根(8088)數(shù)據(jù)線以及控制線、狀態(tài)線、電源線和地線等,若每個引腳只傳送一種信息,那么芯片的引腳將會太多,不利于芯片的封裝,因此,8086/8088CPU的部分引腳定義了
39、雙重功能。如第33引腳MN / MX上電平的高低代表兩種不同的信號;第31到24引腳在CPU處于兩種不同的工作方式(最大工作方式和最小工作方式)時具有不同的名稱和定義;引腳9到16(8088CPU)及引腳2到16和39(8086CPU)采用了分時復用技術(shù),即在不同的時刻分別傳送地址或數(shù)據(jù)信息等。 第3章 80 x86微處理器 一一8086CPU 引腳引腳 8086CPU引腳按功能可分為三大類:電源線和地線,地址/數(shù)據(jù)引腳以及控制引腳。 1電源線和地線 電源線VCC(第40引腳):輸入,接入10%單一+5V電源。地線GND(引腳1和20):輸入,兩條地線均應接地。 第3章 80 x86微處理器
40、2. 地址地址/數(shù)據(jù)數(shù)據(jù)(狀態(tài)狀態(tài))引腳引腳 地址/數(shù)據(jù)分時復用引腳AD15AD0(Address Data):引腳39及引腳216,傳送地址時單向輸出,傳送數(shù)據(jù)時雙向輸入或輸出。 地址狀態(tài)分時復用引腳A19/S6A16/S3(Address / Status):引腳3538,輸出、三態(tài)總線。采用分時輸出,即在T1狀態(tài)作地址線用,T2T4狀態(tài)輸出狀態(tài)信息。當訪問存儲器時,T1狀態(tài)輸出A19A15,與AD15AD0一起構(gòu)成訪問存儲器的20位物理地址;CPU訪問I/O端口時,不使用這4個引腳,A19A16保持為0。狀態(tài)信息中的S6為0用來表示8086CPU 當前與總線相連,所以在T2T4狀態(tài),S6
41、總為0,以表示CPU當前連在總線上;S5表示中斷允許標志位IF的當前設置,IF=1時,S5為1,否則為0;S4S3用來指示當前正在使用哪個段寄存器,如表3.3所示。 第3章 80 x86微處理器 表表3.3 S4與與S3組合代表的正在使用的寄存器組合代表的正在使用的寄存器 S4S3當前正在使用的段寄存器00110101ESSSCS或未使用任何段寄存器DS第3章 80 x86微處理器 3. 控制引腳控制引腳 (1) NMI(Non-Maskable Interrupt ):引腳17,非屏蔽中斷請求信號,輸入,上升沿觸發(fā)。此請求不受標志寄存器FLAGS中中斷允許標志位IF狀態(tài)的影響,只要此信號一出
42、現(xiàn),在當前指令執(zhí)行結(jié)束后立即進行中斷處理。 (2) INTR(Interrupt Request) :引腳18,可屏蔽中斷請求信號,輸入,高電平有效。CPU在每個指令周期的最后一個時鐘周期檢測該信號是否有效,若此信號有效,表明有外設提出了中斷請求,這時若IF=1,則當前指令執(zhí)行完后立即響應中斷;若IF=0,則中斷被屏蔽,外設發(fā)出的中斷請求將不被響應。程序員可通過指令STI或CLI將IF標志位置1或清零。 第3章 80 x86微處理器 3) 控制引腳 (1) NMI(Non-Maskable Interrupt):引腳17,非屏蔽中斷請求信號,輸入,上升沿觸發(fā)。此請求不受標志寄存器FLAGS中中
43、斷允許標志位IF狀態(tài)的影響,只要此信號一出現(xiàn),在當前指令執(zhí)行結(jié)束后立即進行中斷處理。 (2) INTR(Interrupt Request):引腳18,可屏蔽中斷請求信號,輸入,高電平有效。CPU在每個指令周期的最后一個時鐘周期檢測該信號是否有效,若此信號有效,表明有外設提出了中斷請求,這時若IF=1,則當前指令執(zhí)行完后立即響應中斷;若IF=0,則中斷被屏蔽,外設發(fā)出的中斷請求將不被響應。程序員可通過指令STI或CLI將IF標志位置1或清0。 第3章 80 x86微處理器 (3) CLK(Clock):引腳19,系統(tǒng)時鐘,輸入。它通常與8284A時鐘發(fā)生器的時鐘輸出端相連。該時鐘信號有效高電平
44、與時鐘周期的比為1 3。 (4) RESET:引腳21,復位信號,輸入,高電平有效。復位信號使處理器馬上結(jié)束現(xiàn)行操作,對處理器內(nèi)部寄存器進行初始化。8086/8088要求復位脈沖寬度不得小于4個時鐘周期。復位后,內(nèi)部寄存器的狀態(tài)如表3.4所示。系統(tǒng)正常運行時,RESET保持低電平。 第3章 80 x86微處理器 表3.4 復位后內(nèi)部寄存器的狀態(tài) 內(nèi)部寄存器狀 態(tài)標志寄存器IPCSDSSSES指令隊列緩沖器其余寄存器0000H0000HFFFFH0000H0000H0000H空0000H第3章 80 x86微處理器 (5) READY:引腳22,數(shù)據(jù)“準備好”信號線,輸入。它實際上是所尋址的存儲
45、器或I/O端口發(fā)來的數(shù)據(jù)準備就緒信號,高電平有效。CPU在每個總線周期的T3狀態(tài)對READY引腳采樣,若為高電平,說明數(shù)據(jù)已準備好;若為低電平,說明數(shù)據(jù)還沒有準備好,CPU在T3狀態(tài)之后自動插入一個或幾個等待狀態(tài)TW,直到READY變?yōu)楦唠娖?,才能進入T4狀態(tài),完成數(shù)據(jù)傳送過程,從而結(jié)束當前總線周期。 第3章 80 x86微處理器 (6) :引腳23,等待測試信號,輸入。當CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對 引腳進行一次測試。若為高電平,CPU就仍處于空轉(zhuǎn)狀態(tài)進行等待,直到 引腳變?yōu)榈碗娖?,CPU結(jié)束等待狀態(tài),執(zhí)行下一條指令,以使CPU與外部硬件同步。 (7) (Read):引腳32
46、,讀控制信號,輸出。當 =0時,表示將要執(zhí)行一個對存儲器或I/O端口的讀操作。到底是從存儲單元還是從I/O端口讀取數(shù)據(jù),取決于M/ (8086)或IO/ (8088)信號。 TESTTESTTESTRDRDIOM第3章 80 x86微處理器 (8)BHE/S7(Bus High Enable / Status):引腳34,高8位數(shù)據(jù)總線允許/狀態(tài)復用引腳,輸出。BHE在總線周期的T1狀態(tài)時輸出,當該引腳輸出為低電平時,表示當前數(shù)據(jù)總線上高8位數(shù)據(jù)有效。該引腳和地址引腳A0配合表示當前數(shù)據(jù)總線的使用情況,如表3.5所示,詳見“3.3.1 8086/8088存儲器組織”一節(jié)。S7 在8086中未被
47、定義,暫作備用狀態(tài)信號線。 第3章 80 x86微處理器 表表3.5 BHE與地址引腳與地址引腳A0編碼的含義編碼的含義 BHEA0數(shù)據(jù)總線的使用情況0011010116位字傳送(偶地址開始的兩個存儲器單元的內(nèi)容)在數(shù)據(jù)總線高8位(D15D8)和奇地址單元間進行字節(jié)傳送在數(shù)據(jù)總線低8位(D7D0)和偶地址單元間進行字節(jié)傳送無效第3章 80 x86微處理器 (9) MN/MX(Minimum/Maximum mode control):引腳33,最小/最大方式控制信號,輸入。MN/MX引腳接高電平時,8086/8088 CPU工作在最小方式,在此方式下,全部控制信號由CPU提供;MN/MX引腳接
48、低電平時,8086/8088工作在最大方式,此時第2431引腳的功能示于圖3.7括號內(nèi),這時,CPU發(fā)出的控制信號經(jīng)8288總線控制器進行變換和組合,從而使總線的控制功能更加完善。 第3章 80 x86微處理器 2. 8086 最小工作方式及引腳2431的定義 當MN/MX接高電平時,系統(tǒng)工作于最小方式,即單處理器方式,它適用于較小規(guī)模的微機系統(tǒng)。其典型系統(tǒng)結(jié)構(gòu)如圖3.8所示。 圖中8284A為時鐘發(fā)生/驅(qū)動器,外接晶體的基本震蕩頻率為15 MHz,經(jīng)8284A三分頻后,送給CPU做系統(tǒng)時鐘。 8282為8位地址鎖存器。當8086訪問存儲器時,在總線周期的T1狀態(tài)下發(fā)出地址信號,經(jīng)8282鎖存
49、后的地址信號可以在訪問存儲器操作期間始終保持不變,為外部提供穩(wěn)定的地址信號。8282是典型的8位地址鎖存芯片,8086采用20位地址,再加上BHE信號,所以需要3片8282作為地址鎖存器。 第3章 80 x86微處理器 8286為具有三態(tài)輸出的8位數(shù)據(jù)總線收發(fā)器,用于需要增加驅(qū)動能力的系統(tǒng)。在8086系統(tǒng)中需要2片8286,而在8088系統(tǒng)中只用1片就可以了。 系統(tǒng)中還有一個等待狀態(tài)產(chǎn)生電路,它向8284A的RDY端提供一個信號,經(jīng)8284A同步后向CPU的READY線發(fā)數(shù)據(jù)準備就緒信號,通知CPU數(shù)據(jù)已準備好,可以結(jié)束當前的總線周期。當READY=0時,CPU在T3之后自動插入TW狀態(tài),以避
50、免CPU與存儲器或I/O設備進行數(shù)據(jù)交換時,因后者速度慢而丟失數(shù)據(jù)。 第3章 80 x86微處理器 圖3.8 8086最小方式系統(tǒng)結(jié)構(gòu) 8086 CPUMX/MNVCC(5 V)ALECLKREADYBHERESETA19 /S6A16 /S3AD15 /AD08284A時鐘發(fā)生器VCC等待狀態(tài)產(chǎn)生器地址鎖存器8282(3片)數(shù)據(jù)收發(fā)器8286(2片)STBOE地址總線ABDENR/DT數(shù)據(jù)總線DBIO/MINTRINTARDWRHOLDHLDA控制總線CBRDY第3章 80 x86微處理器 在最小方式下,第2431引腳的功能如下: (1) INTA(Interrupt Acknowledge
51、):引腳24,中斷響應信號,輸出。該信號用于對外設的中斷請求(經(jīng)INTR引腳送入CPU)作出響應。INTA實際上是兩個連續(xù)的負脈沖信號,第一個負脈沖通知外設接口,它發(fā)出的中斷請求已被允許;外設接口接到第2個負脈沖后,將中斷類型號放到數(shù)據(jù)總線上,以便CPU根據(jù)中斷類型號到內(nèi)存的中斷向量表中找出對應中斷的中斷服務程序入口地址,從而轉(zhuǎn)去執(zhí)行中斷服務程序。 第3章 80 x86微處理器 (2) ALE(Address Latch Enable):引腳25,地址鎖存允許信號,輸出。它是8086/8088提供給地址鎖存器的控制信號,高電平有效。在任何一個總線周期的T1狀態(tài),ALE均為高電平,以表示當前地址
52、/數(shù)據(jù)復用總線上輸出的是地址信息,ALE由高到低的下降沿把地址裝入地址鎖存器中。 (3) DEN(Data Enable):引腳26,數(shù)據(jù)允許信號,輸出。當使用數(shù)據(jù)總線收發(fā)器時,該信號為收發(fā)器的OE端提供了一個控制信號,該信號決定是否允許數(shù)據(jù)通過數(shù)據(jù)總線收發(fā)器。DEN為高電平時,收發(fā)器在收或發(fā)兩個方向上都不能傳送數(shù)據(jù),當DEN為低電平時,允許數(shù)據(jù)通過數(shù)據(jù)總線收發(fā)器。 第3章 80 x86微處理器 (4) DT/R(Data Transmit/Receive):引腳27,數(shù)據(jù)發(fā)送/接收信號,輸出。該信號用來控制數(shù)據(jù)的傳送方向。當其為高電平時,8086 CPU通過數(shù)據(jù)總線收發(fā)器進行數(shù)據(jù)發(fā)送;當其為
53、低電平時,則進行數(shù)據(jù)接收。在DMA方式,它被浮置為高阻狀態(tài)。 (5) M/IO(Memory/Input and Output):引腳28,存儲器I/O端口控制信號,輸出。該信號用來區(qū)分CPU是進行存儲器訪問還是I/O端口訪問。當該信號為高電平時,表示CPU正在和存儲器進行數(shù)據(jù)傳送;如為低電平,表明CPU正在和輸入/輸出設備進行數(shù)據(jù)傳送。在DMA方式,該引腳被浮置為高阻狀態(tài)。 第3章 80 x86微處理器 (6) WR(Write):引腳29,寫信號,輸出。WR有效時,表示CPU當前正在進行存儲器或I/O寫操作,到底是哪一種寫操作,取決于M/IO信號。在DMA方式,該引腳被浮置為高阻狀態(tài)。 (
54、7) HOLD(Hold request):引腳31,總線保持請求信號,輸入。當8086/8088 CPU之外的總線主設備要求占用總線時,通過該引腳向CPU發(fā)一個高電平的總線保持請求信號。 第3章 80 x86微處理器 (8) HLDA(Hold Acknowledge):引腳30,總線保持響應信號,輸出。當CPU接收到HOLD信號后,這時如果CPU允許讓出總線,就在當前總線周期完成時,在T4狀態(tài)發(fā)出高電平有效的HLDA信號給以響應。此時,CPU讓出總線使用權(quán),發(fā)出HOLD請求的總線主設備獲得總線的控制權(quán)。 第3章 80 x86微處理器 3. 8086 最大工作方式及引腳2431的定義 當MN
55、/MX接低電平時,系統(tǒng)工作于最大方式,即多處理器方式,其典型系統(tǒng)結(jié)構(gòu)如圖3.9所示。比較最大方式和最小方式系統(tǒng)結(jié)構(gòu)圖可以看出,最大方式和最小方式有關(guān)地址總線和數(shù)據(jù)總線的電路部分基本相同,即都需要地址鎖存器及數(shù)據(jù)總線收發(fā)器。而控制總線的電路部分有很大差別。在最小工作方式下,控制信號可直接從8086/8088 CPU得到,不需要外加電路。最大方式是多處理器工作方式,需要協(xié)調(diào)主處理器和協(xié)處理器的工作。因此,8086/8088的部分引腳需要重新定義,控制信號不能直接從8086/8088 CPU引腳得到,需要外加8288總線控制器,通過它對CPU發(fā)出的控制信號(S0,S1,S2)進行變換和組合,以得到對
56、存儲器和I/O端口的讀寫控制信號和對地址鎖存器8282及對總線收發(fā)器8286的控制信號,使總線的控制功能更加完善。 第3章 80 x86微處理器 8086 CPU5 VCLKREADY0SRESETA19 /S6A16 /S3AD15 /AD08284A時鐘發(fā)生器VCC等待狀態(tài)產(chǎn)生器地址鎖存器8282(3片)數(shù)據(jù)收發(fā)器8286(2片)OE地址總線AB數(shù)據(jù)總線DB控制總線CB1S2S 8288 總線控制器0S1S2SCLKCENAENINTAIOBMRDCMWTCAMWCIORCIOWCAIOWCSTBBHE1TOEMX/MNDENR/DTALE圖3.9 8086最大方式系統(tǒng)結(jié)構(gòu) 第3章 80
57、x86微處理器 在最大方式下,第2431引腳的功能如下: (1) QS1、QS0(Instruction Queue Status):引腳24、25,指令隊列狀態(tài)信號,輸出。QS1、QS0兩個信號電平的不同組合指明了8086/8088內(nèi)部指令隊列的狀態(tài),其代碼組合對應的含義如表3.6所示。 表表3.6 QS1、QS0的代碼組合對應的含義的代碼組合對應的含義 QS1QS0含含 義義00無操作無操作01從指令隊列的第一字節(jié)中取走代碼從指令隊列的第一字節(jié)中取走代碼10隊列為空隊列為空11除第一字節(jié)外,還取走了后續(xù)字節(jié)中的代碼除第一字節(jié)外,還取走了后續(xù)字節(jié)中的代碼第3章 80 x86微處理器 (2)
58、S2、S1、S0(Bus Cycle Status):引腳26、27、28,總線周期狀態(tài)信號,輸出。低電平有效的三個狀態(tài)信號連接到總線控制器8288的輸入端,8288對這些信號進行譯碼后產(chǎn)生內(nèi)存及I/O端口的讀寫控制信號。表3.7給出了這三個狀態(tài)信號的代碼組合使8288產(chǎn)生的控制信號及其對應的操作。 第3章 80 x86微處理器 表3.7中前7種代碼組合都對應某個總線操作過程,通常稱為有源狀態(tài),它們處于前一個總線周期的T4狀態(tài)或本總線周期的T1、T2狀態(tài)中,S2、S1、S0至少有一個信號為低電平。在總線周期的T3、TW狀態(tài)并且READY信號為高電平時,S2、S1、S0都成為高電平,此時,前一個
59、總線操作就要結(jié)束,后一個新的總線周期尚未開始,通常稱為無源狀態(tài)。而在總線周期的最后一個狀態(tài)即T4狀態(tài),S2、S1、S0中任何一個或幾個信號的改變,都意味著下一個新的總線周期的開始。 第3章 80 x86微處理器 表表3.7 S2、S1、S0的代碼組合對應的操作的代碼組合對應的操作 8288產(chǎn)生的控制信號產(chǎn)生的控制信號對對 應應 操操 作作000 發(fā)中斷響應信號發(fā)中斷響應信號 001 讀讀I/O端口端口 010 寫寫I/O端口端口01 1 無無 暫停暫停 10 0 取指令取指令 101 讀內(nèi)存讀內(nèi)存110 寫內(nèi)存寫內(nèi)存11 1無無 無源狀態(tài)無源狀態(tài)2S1S0SINTAIORCAIOWCIOWC和
60、WRDCAMWCNWTC和WRDC第3章 80 x86微處理器 (3) LOCK(Lock):引腳29,總線封鎖信號,輸出。當LOCK為低電平時,系統(tǒng)中其他總線主設備就不能獲得總線的控制權(quán)而占用總線。LOCK信號由指令前綴LOCK產(chǎn)生,LOCK指令后面的一條指令執(zhí)行完后,便撤消了LOCK信號。另外,在DMA期間,LOCK被浮空而處于高阻狀態(tài)。 第3章 80 x86微處理器 (4) RQ/GT1、RQ/GT0(Request/Grant):引腳30、31,總線請求信號(輸入)/總線請求允許信號(輸出)。這兩個信號可供8086/8088以外的2個總線主設備向8086/8088發(fā)出使用總線的請求信號
61、RQ(相當于最小方式時的HOLD信號)。而8086/8088在現(xiàn)行總線周期結(jié)束后讓出總線,發(fā)出總線請求允許信號GT(相當于最小方式的HLDA信號),此時,外部總線主設備便獲得了總線的控制權(quán)。其中RQ / GT0比RQ / GT1的優(yōu)先級高。第3章 80 x86微處理器 8288總線控制器還提供了其他一些控制信號:MRDC(Memory Read Command)、MWTC(Memory Write Command)、IORC(I/O Read Command)、IOWC(I/O Write Command)以及INTA等,它們分別是存儲器與I/O的讀寫命令以及中斷響應信號。另外,還有AMWC與
62、AIOWC兩個信號,它們分別表示提前寫內(nèi)存命令和提前寫I/O命令,其功能分別與MWTC和IOWC一樣,只是它們由8288提前一個時鐘周期發(fā)出信號,這樣,一些較慢的存儲器和外設將得到一個額外的時鐘周期去執(zhí)行寫入操作。第3章 80 x86微處理器 48088與與8086引腳的區(qū)別引腳的區(qū)別 8088與8086絕大多數(shù)引腳的名稱和功能是完全相同的,僅有以下三點不同: (1) AD15AD0的定義不同。在8086中都定義為地址/數(shù)據(jù)分時復用引腳;而在8088中,由于只需要8條數(shù)據(jù)線,因此,對應于8086的AD15AD8這8根引腳在8088中定義為A15A8,它們在8088中只做地址線用。 (2) 引腳
63、34的定義不同。在最大方式下,8088的第34引腳保持高電平,而8086在最大方式下34引腳的定義與最小方式下相同。 第3章 80 x86微處理器 (3) 引腳28的有效電平高低定義不同。8088和8086的第28引腳的功能是相同的,但有效電平的高低定義不同。8088的第28引腳為IO/M,當該引腳為低電平時,表明8088正在進行存儲器操作;當該引腳為高電平時,表明8088正在進行I/O操作。8086的第28引腳為M/IO,電平與8088正好相反。 第3章 80 x86微處理器 3.3 8086/8088存儲器和存儲器和I/O組織組織 3.3.1 8086/8088存儲器組織存儲器組織 180
64、86/8088存儲空間 8086/8088有20條地址線,可直接對1 M個存儲單元進行訪問。每個存儲單元存放一個字節(jié)型數(shù)據(jù),且每個存儲單元都有一個20位的地址,這1 M個存儲單元對應的地址為00000HFFFFFH,如圖3.10所示。 一個存儲單元中存放的信息稱為該存儲單元的內(nèi)容。如圖3.10所示,00001H單元的內(nèi)容為9FH,記為:(00001H)=9FH。 第3章 80 x86微處理器 78H9FH存儲單元地址00000H00001H46HDFH6CH98H65H5EHA6H66H6FH0011FH00120H00121HE8009HE800AHE800BHE800CHE800DHFFF
65、FFH圖3.10 數(shù)據(jù)在存儲器中的存放 第3章 80 x86微處理器 若存放的是字型數(shù)據(jù)(16位二進制數(shù)),則將字的低位字節(jié)存放在低地址單元,高位字節(jié)存放在高地址單元。如從地址0011FH開始的兩個連續(xù)單元中存放一個字型數(shù)據(jù),則該數(shù)據(jù)為DF46H,記為:(0011FH)=DF46H。 若存放的是雙字型數(shù)據(jù)(32位二進制數(shù),這種數(shù)一般作為地址指針,其低位字是被尋址地址的偏移量,高位字是被尋址地址所在段的段地址),這種類型的數(shù)據(jù)要占用連續(xù)的4個存儲單元,同樣,低字節(jié)存放在低地址單元,高字節(jié)存放在高地址單元。如從地址E800AH開始的連續(xù)4個存儲單元中存放了一個雙字型數(shù)據(jù),則該數(shù)據(jù)為66A65E65
66、H,記為:(E800AH)=66A65E65H。 第3章 80 x86微處理器 2存儲器的段結(jié)構(gòu)存儲器的段結(jié)構(gòu) 8086/8088 CPU中有關(guān)可用來存放地址的寄存器如IP、SP等都是16位的,故只能直接尋址64 KB。為了對1 M個存儲單元進行管理,8086/8088采用了段結(jié)構(gòu)的存儲器管理方法。 8086/8088將整個存儲器分為許多邏輯段,每個邏輯段的容量小于或等于64 KB,允許它們在整個存儲空間中浮動,各個邏輯段之間可以緊密相連,也可以互相重疊。用戶編寫的程序(包括指令代碼和數(shù)據(jù))被分別存儲在代碼段、數(shù)據(jù)段、堆棧段和附加數(shù)據(jù)段中,這些段的段地址分別存儲在段寄存器CS、DS、SS和ES中,而指令或數(shù)據(jù)在段內(nèi)偏移地址可由對應的地址寄存器或立即數(shù)給出,如表3.8所示。 第3章 80 x86微處理器 表表3.8 存儲器操作時段地址和段內(nèi)偏移地址的來源存儲器操作時段地址和段內(nèi)偏移地址的來源 存儲器操作類型存儲器操作類型 段段 地地 址址 偏移地址偏移地址 正常來源正常來源 其他來源其他來源取指令取指令 CS 無無 IP 存取操作數(shù)存取操作數(shù) DSCS、ES、SS 有效地址有效地址EA通
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版九年級數(shù)學下冊課件:273-位似-第2課時
- 新人教版《科學之旅》-課件
- 會計觀念的創(chuàng)新課件
- 代謝綜合征臨床評估與危險因素防治
- 產(chǎn)品質(zhì)量處理辦法
- 文明單位申報材料-powerpoint__演示文稿
- 遷安市某中學七年級數(shù)學上冊第三章整式及其加減專題練習三整式的化簡與計算課件新版北師大版
- 分時線洗盤的三種常見方式課件
- 寫出事物的特點課件
- 《百善孝為先》教學ppt課件
- 五年級數(shù)學下冊期中復習卡--------課件
- 走進美妙的色彩世界
- 五年級數(shù)學上冊課件梯形的面積人教版2
- 計算機繪圖0113章
- Ch2 顧客價值、滿意度、關(guān)系管理