8086概述
Intel8086擁有四個16位的通用寄存器,也能夠當作八個8位寄存器來存取,以及四個16位索引寄存器(包含了堆棧指標)。資料寄存器通常由指令隱含地使用,針對暫存值需要復雜的寄存器配置。它提供64K8位元的輸出輸入(或32K16位元),以及固定的向量中斷。大部分的指令只能夠存取一個內存位址,所以其中一個操作數必須是一個寄存器。運算結果會儲存在操作數中的一個寄存器。
Intel8086有四個內存區段(segment)寄存器,可以從索引寄存器來設定。區段寄存器可以讓CPU利用特殊的方式存取1MB內存。8086把段地址左移4位然后把它加上偏移地址。大部分的人都認為這是一個很不好的設計,因為這樣的結果是會讓各分段有重疊。盡管這樣對組合語言而言大部分被接受(也甚至有用),可以完全地控制分段,使在編程中使用指針(如C編程語言)變得困難。它導致指針的高效率表示變得困難,且有可能產生兩個指向同一個地方的指針擁有不同的地址。更壞的是,這種方式產生要讓內存擴充到大于1MB的困難。而8086的尋址方式改變讓內存擴充較有效率。
8086處理器的時鐘頻率介于4.77MHz(在原先的IBMPC頻率)和10MHz之間。8086沒有包含浮點指令部分(FPU),但是可以通過外接數學輔助處理器來增強浮點計算能力。Intel8087是標準版本。
8086引腳圖及功能
![8086CPU中文資料匯總(8086引腳圖及功能_工作原理及應用電路)](http://file.elecfans.com/web1/M00/4F/23/pIYBAFrUE-CAPG57AACP5HV3wss560.jpg)
⑴AD15~AD0(addressdatabus):地址/數據總線,雙向,三態。
這是一組采用分時的方法傳送地址或數據的復用引腳。根據不同時鐘周期的要求,決定當前是傳送要訪問的存儲單元或I/O端口的低16位地址,還是傳送16位數據,或是處于高阻狀態。
⑵A19/S6~A16/S3(address/status):地址/狀態信號,輸出,三態。
這是采用分時的方法傳送地址或狀態的復用引腳。其中A19~A16為20位地址總線的高4位地址,S6~S3是狀態信號。S6表示CPU與總線連接的情況,S5指示當前中斷允許標志IF的狀態。S4,S3的代碼組合用來指明當前正在使用的段寄存器。S4,S3的代碼組合及對應段寄存器的情況。
⑶BHE(低)/S7(bushighenable/status):允許總線高8位數據傳送/狀態信號,輸出,三態。
為總線高8位數據允許信號,當低電平有效時,表明在高8位數據總線D15~D8上傳送1個字節的數據。S7為設備的狀態信號。
⑷RD/(read):讀信號,輸出,三態,低電平有效。
信號低電平有效時,表示CPU正在進行讀存儲器或讀I/O端口的操作。
⑸READY(ready):準備就緒信號,輸入,高電平有效。
READY信號用來實現CPU與存儲器或I/O端口之間的時序匹配。當READY信號高電平有效時,表示CPU要訪問的存儲器或I/O端口已經作好了輸入/輸出數據的準備工作,CPU可以進行讀/寫操作。當READY信號為低電平時,則表示存儲器或I/O端口還未準備就緒,CPU需要插入若干個“TW狀態”進行等待。
⑹INTR(interruptrequest):可屏蔽中斷請求信號,輸入,高電平有效。
8086CPU在每條指令執行到最后一個時鐘周期時,都要檢測INTR引腳信號。INTR為高電平時,表明有I/O設備向CPU申請中斷,若IF=1,CPU則會響應中斷,停止當前的操作,為申請中斷的I/O設備服務。
⑺TEST/(test):等待測試控制信號,輸入,低電平有效。
信號用來支持構成多處理器系統,實現8086CPU與協處理器之間同步協調的功能,只有當CPU執行WAIT指令時才使用。
⑻NMI(non-maskableinterrupt):非屏蔽中斷請求信號,輸入,高電平有效。
當NMI引腳上有一個上升沿有效的觸發信號時,表明CPU內部或I/O設備提出了非屏蔽的中斷請求,CPU會在結束當前所執行的指令后,立即響應中斷請求。
⑼RESET(reset):復位信號,輸入,高電平有效。
RESET信號有效時,CPU立即結束現行操作,處于復位狀態,初始化所有的內部寄存器。復位后各內部寄存器的狀態,當RESET信號由高電平變為低電平時,CPU從FFFF0H地址開始重新啟動執行程序。
⑽CLK(clock):時鐘信號,輸入。
CLK為CPU提供基本的定時脈沖信號。8086CPU一般使用時鐘發生器8284A來產生時鐘信號,時鐘頻率為5MHz~8MHz,占空比為1:3。
⑾VCC電源輸入引腳。
8086CPU采用單一+5V電源供電。
⑿GND:接地引腳。
⒀MN/MX/(minimum/maximum):最小/最大模式輸入控制信號。
引腳用來設置8086CPU的工作模式。當為高電平(接+5V)時,CPU工作在最小模式;當為低電平(接地)時,CPU工作在最大模式。
CPU工作于最小模式時使用的引腳信號
當引腳接高電平時,CPU工作于最小模式。此時,引腳信號24~31的含義及其功能如下。
⑴M/IO/(memoryI/Oselect):存儲器、I/O端口選擇控制信號。
信號指明當前CPU是選擇訪問存儲器還是訪問I/O端口。為高電平時,訪問存儲器,表示當前要進行CPU與存儲器之間的數據傳送。為低電平時,訪問I/O端口,表示當前要進行CPU與I/O端口之間的數據傳送。
⑵WR/(write):寫信號,輸出,低電平有效。
信號有效時,表明CPU正在執行寫總線周期,同時由信號決定是對存儲器還是對I/O端口執行寫操作。
⑶INTA/(interruptacknowledge):可屏蔽中斷響應信號,輸出,低電平有效。
CPU通過信號對外設提出的可屏蔽中斷請求做出響應。為低電平時,表示CPU已經響應外設的中斷請求,即將執行中斷服務程序。
⑷ALE(addresslockenable):地址鎖存允許信號,輸出,高電平有效。
CPU利用ALE信號可以把AD15~AD0地址/數據、A19/S6~A16/S3地址/狀態線上的地址信息鎖存在地址鎖存器中。
⑸DT/(datatransmitorreceive):數據發送/接收信號,輸出,三態。
DT/信號用來控制數據傳送的方向。DT/為高電平時,CPU發送數據到存儲器或I/O端口;DT/為低電平時,CPU接收來自存儲器或I/O端口的數據。⑹DEN/(dataenable):數據允許控制信號,輸出,三態,低電平有效。
信號用作總線收發器的選通控制信號。當為低電平時,表明CPU進行數據的讀/寫操作。
⑺HOLD(busholdrequest):總線保持請求信號,輸入,高電平有效。
在DMA數據傳送方式中,由總線控制器8237A發出一個高電平有效的總線請求信號,通過HOLD引腳輸入到CPU,請求CPU讓出總線控制權。
⑻HLDA(holdacknowledge):總線保持響應信號,輸出,高電平有效。
HLDA是與HOLD配合使用的聯絡信號。在HLDA有效期間,HLDA引腳輸出一個高電平有效的響應信號,同時總線將處于浮空狀態,CPU讓出對總線的控制權,將其交付給申請使用總線的8237A控制器使用,總線使用完后,會使HOLD信號變為低電平,CPU又重新獲得對總線的控制權。
CPU工作于最大模式時使用的引腳信號
當引腳接低電平時,CPU工作于最大模式。此時,引腳信號24~31的含義及其功能如下。
⑴S2,S1,S0(statussignals):總線周期狀態信號,輸出,低電平有效。
⑵RQ/,GT/(request/grant):總線請求允許信號輸入/總線請求允許輸出信號,雙向,低電平有效。
該信號用以取代最小模式時的HOLD/HLDA兩個信號的功能,是特意為多處理器系統而設計的。當系統中某一部件要求獲得總線控制權時,就通過此信號線向8086CPU發出總線請求信號,若CPU響應總線請求,就通過同一引腳發回響應信號,允許總線請求,表明8086CPU已放棄對總線的控制權,將總線控制權交給提出總線請求的部件使用。RQ/GT0優先級高于RQ/GT1。
⑶LOCK/(lock)總線封鎖信號,輸出,低電平有效。
信號有效時,表示此時8086CPU不允許其他總線部件占用總線。
⑷QS1,QS0(queuestatus):指令隊列狀態信號,輸出。
QS1和QS0信號的組合可以指示總線接口部件BIU中指令隊列的狀態,以便其他處理器監視、跟蹤指令隊列的狀態。
8086工作模式
1、最小模式
用于由8086單一微處理器構成的小系統。在這種方式下,由8086CPU直接產生小系統所需要的全部控制信號。器系統特點是:總線控制邏輯直接由8086CPU產生和控制。若有CPU以外的其他模塊想占用總線,則可以向CPU提出請求,在CPU允許并響應的情況下,該模塊才可以獲得總線控制權,使用完后,又將總線控制權還給CPU。
2、最大模式
用于實現多處理機系統,其中,8086CPU被稱為主處理器,其他處理器被稱為協處理器。在這種方式下,8086CPU不直接提供用于存儲器或I/O讀寫的讀寫命令等控制信號,而是將當前要執行的傳送操作類型編碼為3個狀態位輸出,由總線控制器8288對狀態信號進行譯碼產生相應控制信號。最大模式系統的特點是:總線控制邏輯由總線控制器8288產生和控制,即8288將主處理器的狀態和信號轉換成系統總線命令和控制信號。協處理器只是協助主處理器完成某些輔助工作,即被動的接受并執行來自主處理器的命令。和8086配套使用的協處理器有兩個:一個是專用于數值計算的協處理器8087,另一個是專用于輸入輸出操作的協處理器8089。8087通過硬件實現高精度整數浮點數運算。8089有其自身的一套專門用于輸入輸出操作的命令系統,還可帶局部存儲器,可以直接為輸入輸出設備服務。增加協處理器,使得浮點運算和輸入輸出操作不再占用8086時間,從而大大提高了系統的運行效率。
8086結構
總線接口單元(BIUbusinterfaceunit)
8086cpu結構圖總線接口單元BIU
總線接口部件由下列各部分組成
⑴4個段地址寄存器:
CS(codesegment)——16位的代碼段寄存器;
DS(datasegment)——16位的數據段寄存器;
ES(extrasegment)——16位的擴展段寄存器;
SS(stacksegment)——16位的堆棧段寄存器;
⑵16位的指令指針寄存器IP;
⑶20位的地址加法器;
⑷6字節的指令隊列緩沖器。
執行單元
執行部件由下列幾個部分組成:
⑴8個通用寄存器:即AX、BX、CX、DX,BP,SP,SI,DI;
其中,4個數據寄存器:AX、BX、CX、DX;
2個地址指針寄存器:BP(basepointer),SP(stackpointer);
2個變址寄存器:SI(sourceindex),DI(destinationindex)[2];
⑵標志寄存器FR(flagsregister);
⑶算術邏輯單元ALU(arithmeticlogicunit)。
EU負責全部指令的執行,同時向BIU輸出數據(操作結果),并對寄存器和標志寄存器進行管理。在ALU中進行16位運算,數據傳送和處理均在EU控制下執行。
8086cpu結構圖
8086系統組成
8086是一種微處理器,再加上必須的支持芯片,如時鐘發生器,地址鎖存器,總線驅動器,存儲器和I/O接口等,才能構成一臺完整的微型計算機。根據外部設備的數量和系統復雜程度,8086可以選用兩種系統構成模式,最小模式和最大模式。最小模式是單CPU系統,在這種系統中,8086的MN/MX引腳接高電平,系統全部的控制信號都直接由CPU提供。最大模式是多CPU系統,此時MN/MX引腳接低電平,必須通過8288總線控制器對CPU的狀態信息進行譯碼才能產生系統必須的控制信號。
最小模式系統構成如圖所示。這時8086的MN/MX引腳接至VCC,它直接產生存儲器和I/O端口的讀寫命令,如IO/M,RD,WR,INTA,直接產生地址鎖定信號ALE,控制數據收發器的控制信號DT/R,DEN.
1.地址鎖存
8086的AD15~~AD0是地址/數據復用線,即CPU與存儲器進行信息交換時,首先在T1狀態,先由CPU送出訪問存儲單元的地址信息到AD15~~AD0上,隨后又用在些線來傳送數據所以在數據送上總線以前,必須先將地址鎖存起來。可用8282或74LS373鎖存8086的單向地址AD15~~AD0.圖7-9中使用三片8282,這是因為8282只具有8位鎖存功能,而8086具有20位地址和一根BHE信號。若系統存儲器容量較小,使用不到20位地址信息,也可只用2片8282.圖中OE端接地,使鎖存器永遠處于允許輸出狀態。引腳STB接8086的ALE輸出。在總線周期T1狀態,ALE上出現正脈沖,它的下降沿將8282輸入端的地址信息存入鎖存器,并由輸出端送入地址總線。
2.雙向數據總線驅動器
CPU可以直接將數據發送到數據總線上。而無需鎖存。為了增加總線負載能力,CPU數據總線一般要加上驅動器,且要求雙向驅動器,一般采用8位雙向驅動器8286或74LS245.由于8086數據總線是16位的,所以要用2片8286.8286的Ai引腳接CPU的ADi,其Di引腳接到系統數據總線D1上,并將8086的DT/R接8286的T引腳,當DT/R為高電平時,數據從CPU發送到數據總線上.DT/R為低電平時,CPU從數據總線上接收數據.8286的OE腳接8086的DEN腳。當8086的DEN為低電平時,才允許數據輸入或輸出。
3.時鐘發生器/驅動器
8086所需時鐘脈沖CLK由8284提供.8284輸出時鐘CLK的頻率,取決X1,X2跨接石英晶體的頻率。除此以外,8284還向8086提供定時和寬度符合要求的RESET復位信號及符合要求的READY信號。
4.存儲器部件
8086能直接尋址1MB存儲空間。這個存儲空間分為兩個512KB存儲體。一個存儲體由奇地址單元組成,用于存儲16數據的高字節,另一個存儲體由偶地址單元組成,用于存儲16位數據低字節。前者稱為奇地址存儲器,后者稱為偶地址存儲體。偶地址存儲體的8位數據總線接CPU的數據總線D7~~D0,而奇地址存儲體8位數據線接數據總線D15~~D8.地址線A19~~A1同時接到兩個存儲體,而A0作為偶地址選中信號即A0=0時,選中偶存儲體.BHE作為奇地址片選信號,BHE=0時選中奇存儲體。所以兩個存儲體可以同時讀出或寫入,也可單獨選中一個存儲體。
5.I/O端口
一個完整的微機系統必須有I/O設備.I/O設備都有端口地址號.CPU通過地址總線發出端口地址,經過端口地址譯碼器輸出,送到端口的片選引腳而選定指定的端口.8086根據執行命令是訪問存儲器指令還是輸入輸出指令,來使M/IO控制信號是高電平或是低電平,以區分地址總線上的地址是訪問存儲器還是訪問外設.
8086微處理器的工作原理圖
![8086CPU中文資料匯總(8086引腳圖及功能_工作原理及應用電路)](http://file.elecfans.com/web1/M00/4F/23/pIYBAFrUF1GALH9bAABoIPDR3yM533.jpg)
![8086CPU中文資料匯總(8086引腳圖及功能_工作原理及應用電路)](http://file.elecfans.com/web1/M00/4F/21/o4YBAFrUF1GAEmXuAADLyLC0oj4341.jpg)
8086芯片擴展電路圖
![8086CPU中文資料匯總(8086引腳圖及功能_工作原理及應用電路)](http://file.elecfans.com/web1/M00/4F/23/pIYBAFrUGLiAYhUFAAG_LNYXXUM832.jpg)
8086應用電路:控制信號的相應處理
在實際的運用中,我們一般會較形象的運用/MEMR,/MEMW,/IOR,/IOW這四種控制信號,故需要一定的物理電路來實現邏輯變換,將從CPU引出的/RD,/WR,IO//M三個控制信號變為/MEMR,/MEMW,/IOR,/IOW,相應電路圖如圖所示:
推薦閱讀: