8086微處理器

8086微處理器

8086微處理器是一個由Intel於1978年所設計的16位微處理器晶片,是x86架構的鼻祖。

引腳

在學習8086CPU的引腳信號前,必須弄清CPU最小模式和最大模式的概念。所謂最小模式,就是在系統中只有一個8086微處理器,所有的匯流排控制信號都直接由8086CPU產生,因此,系統中的匯流排控制電路被減到最少。最大模式是相對最小模式而言的。在最大模式系統中,總是包含兩個或多個微處理器,其中一個主處理器就是8086,其他的處理器稱為協處理器,它們是協助主處理器工作的。如數學運算協處理器8087,輸入/輸出協處理器8089。8086CPU到底工作在最大模式還是最小模式,完全由硬體決定。

當CPU處於不同工作模式時,其部分引腳的功能是不同的。

1.兩種工作方式功能相同的引腳

⑴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工作在最大模式。

8086微處理器8086微處理器

2.CPU工作於最小模式時使用的引腳信號

當引腳接高電平時,CPU工作於最小模式。此時,引腳信號24~31的含義及其功能如下。

⑴IO/M/(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又重新獲得對匯流排的控制權。

3.CPU工作於最大模式時使用的引腳信號

當引腳接低電平時,CPU工作於最大模式。此時,引腳信號24~31的含義及其功能如下。

⑴S2,S1,S0(statussignals):匯流排周期狀態信號,輸出,低電平有效。

它們表明當前匯流排周期所進行的操作類型。

⑵RQ/,GT/(request/grant):匯流排請求允許信號輸入/匯流排請求允許輸出信號,雙向,低電平有效。

該信號用以取代最小模式時的HOLD/HLDA兩個信號的功能,是特意為多處理器系統而設計的。當系統中某一部件要求獲得匯流排控制權時,就通過此信號線向8086CPU發出匯流排請求信號,若CPU回響匯流排請求,就通過同一引腳發迴響應信號,允許匯流排請求,表明8086CPU已放棄對匯流排的控制權,將匯流排控制權交給提出匯流排請求的部件使用。引腳的優先權高於。

⑶LOCK/(lock)匯流排封鎖信號,輸出,低電平有效。

信號有效時,表示此時8086CPU不允許其他匯流排部件占用匯流排。

⑷QS1,QS0(queuestatus):指令佇列狀態信號,輸出。

QS1和QS0信號的組合可以指示匯流排接口部件BIU中指令佇列的狀態,以便其他處理器監視、跟蹤指令佇列的狀態。

指令集

MOV

功能:把源運算元送給目的運算元

語法:MOV目的運算元,源運算元

格式:MOVr1,r2MOVr,mMOVm,rMOVr,data

XCHG

功能:交換兩個運算元的數據

語法:XCHG

格式:XCHGr1,r2XCHGm,rXCHGr,m

PUSH,POP

功能:把運算元壓入或取出堆疊

語法:PUSH運算元POP運算元

格式:PUSHrPUSHMPUSHdataPOPrPOPm

PUSHF,POPF,PUSHA,POPA

功能:堆疊指令群

格式:PUSHFPOPFPUSHAPOPA

LEA,LDS,LES

功能:取地址至暫存器

語法:LEAr,mLDSr,mLESr,mXLAT(XLATB)

功能:查表指令

語法:XLATXLATm

算數運算指令ADD,ADC

功能:加法指令

語法:ADDOP1,OP2ADCOP1,OP2

格式:ADDr1,r2ADDr,mADDm,rADDr,data

影響標誌:C,P,A,Z,S,O

SUB,SBB

功能:減法指令

語法:SUBOP1,OP2SBBOP1,OP2

格式:SUBr1,r2SUBr,mSUBm,rSUBr,dataSUBm,data

影響標誌:C,P,A,Z,S,OINC,DEC

功能:把OP的值加一或減一

語法:INCOPDECOP

格式:INCr/mDECr/m

影響標誌:P,A,Z,S,O

NEG

功能:將OP的符號反相(取二進制補碼)

語法:NEGOP

格式:NEGr/m

影響標誌:C,P,A,Z,S,OMUL,IMUL

功能:乘法指令

語法:MULOPIMULOP

格式:MULr/mIMULr/m

影響標誌:C,P,A,Z,S,O(僅IMUL會影響S標誌)DⅣ,IDⅣ

功能:除法指令

語法:DⅣOPIDⅣOP

格式:DⅣr/mIDⅣr/m

CBW,CWD

功能:有符號數擴展指令

語法:CBWCWDAAA,AAS,AAM,AAD

功能:非壓BCD碼運算調整指令

語法:AAAAASAAMAAD

影響標誌:A,C(AAA,AAS)S,Z,P(AAM,AAD)DAA,DAS

功能:壓縮BCD碼調整指令

語法:DAADAS

影響標誌:C,P,A,Z,S

位運算指令集AND,OR,XOR,NOT,TEST

功能:執行BIT與BIT之間的邏輯運算

語法:ANDr/m,r/m/dataORr/m,r/m/dataXORr/m,r/m/dataTESTr/m,r/m/dataNOTr/m

影響標誌:C,O,P,Z,S(其中C與O兩個標誌會被設為0)NOT指令不影響任何標誌位

SHR,SHL,SAR,SAL

功能:移位指令

語法:SHRr/m,data/CLSHLr/m,data/CLSARr/m,data/CLSALr/m,data/CL

影響標誌:C,P,Z,S,OROR,ROL,RCR,RCL

功能:循環移位指令

語法:RORr/m,data/CLROLr/m,data/CLRCRr/m,data/CLRCLr/m,data/CL

影響標誌:C,P,Z,S,O

程式流程控制指令集CLC,STC,CMC

功能:設定進位標誌

語法:CLCSTCCMC

標誌位:C

CLD,STD

功能:設定方向標誌

語法:CLDSTD

標誌位:DCLI,STI

功能:設定中斷標誌

語法:CLISTI

標誌位:ICMP

功能:比較OP1與OP2的值

語法:CMPr/m,r/m/data

標誌位:C,P,A,Z,OJMP

功能:跳往指定地址執行

語法:JMP地址

JXX

功能:當特定條件成立則跳往指定地址執行

語法:JXX地址

註:

A:ABOVE,當C=0,Z=0時成立

B:BELOW,當C=1時成立

C:CARRY,當弁時成立CXZ:CX暫存器的值為0(ZERO)時成立

E:EQUAL,當Z=1時成立

G:GREATER(大於),當Z=0且S=0時成立

L:LESS(小於),當S不為零時成立

N:NOT(相反條件),需和其它符號配合使用

O:OVERFLOW,O=1時成立

P:PARITY,P=1時成立

PE:PARITYEVEN,P=1時成立

PO:PARITYODD,P=0時成立

S:SIGN,S=1時成立

Z:ZERO,Z=1時成立

LOOP

功能:循環指令集

語法:LOOP地址LOOPE(Z)

地址LOOPNE(Z)地址

標誌位:無CALL,RET

功能:子程式調用,返回指令

語法:CALL地址RETRETn

標誌位:無INT,IRET

功能:中斷調用及返回指令

語法:INTnIRET

標誌位:在執行INT時,CPU會自動將標誌暫存器的值入棧,在執行IRET時則會將堆疊中的標誌值彈回暫存器

字元串操作指令集MOVSB,MOVSW,MOVSD

功能:字元串傳送指令

語法:MOVSBMOVSWMOVSD

標誌位:無CMPSB,CMPSW,CMPSD

功能:字元串比較指令

語法:CMPSBCMPSWCMPSD

標誌位:C,P,Z,S,O

SCASB,SCASW

功能:字元串搜尋指令

語法:SCASBSCASW

標誌位:C,P,Z,S,OLODSB,LODSW,STOSB,STOSW

功能:字元串載入或存貯指令

語法:LODSBLODSWSTOSBSTOSW

標誌位:無REP,REPE,REPNE

功能:重複前綴指令集

語法:REP指令SREPE指令SREPNE指令S

標誌位:依指令S而定

相關詞條

相關搜尋

熱門詞條

聯絡我們