版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《微機(jī)原理及其應(yīng)用》第2章微處理器及系統(tǒng)結(jié)構(gòu)
內(nèi)容簡介:8086/8088微處理器系統(tǒng)特性及結(jié)構(gòu);
內(nèi)部寄存器的結(jié)構(gòu)特點(diǎn),8086/8088微機(jī)系統(tǒng)的存儲
器組織。
目錄
2.1微型計(jì)算機(jī)的基本結(jié)構(gòu)
2.28086/8088CPU主要特性及內(nèi)部結(jié)構(gòu)
2.38086/8088CPU工作模式和弓I腳功能
2.48086/8088的存儲器組織
2.58086/8088的總線操作禾口時(shí)序
第1章微機(jī)基礎(chǔ)知識
2.1微型計(jì)算機(jī)系統(tǒng)
1.微型計(jì)算機(jī)的基本組成
一個(gè)典型的微型計(jì)算機(jī)系統(tǒng)可以分成硬件系統(tǒng)和軟件系統(tǒng)兩大部分。
r控制器
rCPU,運(yùn)算器
、I〔寄存器
‘主:機(jī)|r只讀存儲器(ROM)
〔內(nèi)存儲器<隨機(jī)存儲器(RAM)
(硬件系統(tǒng)jL高速緩沖存儲器(Cache)
C輸入設(shè)備(鍵盤、鼠標(biāo)、光筆、掃描儀)
I外部設(shè)備<輸出設(shè)備(顯示器、打印機(jī)、繪圖
〔我他設(shè)備(網(wǎng)卡、調(diào)制解調(diào)器、聲卡、顯卡、視頻卡)
微型計(jì)算機(jī)系統(tǒng)C操作系統(tǒng)(DOS、WindowssUNIX等)
語言處理程序(編譯系統(tǒng)、解釋系統(tǒng)等)
r系統(tǒng)軟件《數(shù)據(jù)庫管理系統(tǒng)(VF、Oracle.Access等)
網(wǎng)絡(luò)軟件(等)
【軟件系統(tǒng)W1其他(編輯程序、診斷程序、連接裝配程序等)
(Office套件(Word、Excel、PowerPint>FontPage等)
l應(yīng)用軟件\工具軟件(解壓縮軟件、殺毒軟件等)
〔用戶程序()
第1章微機(jī)基礎(chǔ)知識
1.微機(jī)的硬件系統(tǒng)
計(jì)算機(jī)由運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備等五大部分
組成。通常把運(yùn)算器和控制器稱為中央處理器CPU,把CPU和存儲器合稱為
計(jì)算機(jī)的主機(jī)。而把輸入設(shè)備和輸出設(shè)備以及外存儲器合稱為外部設(shè)備,
簡稱外設(shè)。微型計(jì)算機(jī)由微處理器、存儲器、輸入輸出(I/O)接口電路及
系統(tǒng)總線組成的,系統(tǒng)總線(三總線)即數(shù)據(jù)總線、地址總線和控制總線,
如圖所不。
微
地址總線AB
處
理控制總線CB
器數(shù)據(jù)總線DB
CPU
0
圖1-1微型計(jì)算機(jī)的基本結(jié)構(gòu)外設(shè)
1)CPU
CPU是一個(gè)復(fù)雜的電子邏輯元件,它包含了早期計(jì)算機(jī)中的運(yùn)
算器、控制器及其他功能,能進(jìn)行算術(shù)、邏輯運(yùn)算及控制操作。
2)內(nèi)存
所謂內(nèi)存就是指微型計(jì)算機(jī)內(nèi)部的存儲器。由書中圖2.1可以
看到,內(nèi)存是直接連接在系統(tǒng)總線上的。因此,內(nèi)存的存取速度
比較快。由于內(nèi)存價(jià)格較高,一般其容量較小。這與作為外設(shè)(外
部設(shè)備)的外部存儲器剛好相反,后者容量大而速度慢。
內(nèi)存用來存放微型計(jì)算機(jī)要執(zhí)行的程序及數(shù)據(jù)。
在微型計(jì)算機(jī)的工作過程中,CPU從內(nèi)存中取出程序執(zhí)行或
取出數(shù)據(jù)進(jìn)行加工處理。這種由內(nèi)存取出的過程稱為讀出內(nèi)存,
而將數(shù)據(jù)或程序存放于內(nèi)存的過程則稱為寫入內(nèi)存。
內(nèi)存包含有很多存儲單元(每個(gè)內(nèi)存單元包含8bit),為區(qū)分
不同的內(nèi)存單元,對計(jì)算機(jī)中的每個(gè)內(nèi)存單元進(jìn)行編號,內(nèi)存單
元的編號就稱為內(nèi)存單元的地址。
?讀:將內(nèi)存單元的內(nèi)容取入CPU,原單元內(nèi)容不改變;
?寫:CPU將信息放入內(nèi)存單元,單元中原內(nèi)容被覆蓋;
?內(nèi)存的讀寫的步驟為:地址內(nèi)存
?CPU把要讀寫的內(nèi)存單元
的地址放到AB上
00001H11000111
?若是寫操作,CPU緊接著
把要寫入的數(shù)據(jù)放到DB上00002H00001100
?CPU發(fā)出讀寫命令
?數(shù)據(jù)被寫入指定的單元或
從指定的單元讀出到DB
F0000H00111110
?若是讀操作,CPU緊接著
從DB上取回?cái)?shù)據(jù)
FFFFFH
3)系統(tǒng)總線
系統(tǒng)總線包括地址總線、數(shù)據(jù)總線和控制總線。這些總線
提供了微處理器(CPU)與存儲器、輸入/輸出接口部件的連接線???/p>
以認(rèn)為,一臺微型計(jì)算機(jī)就是以CPU為核心,其他部件全都“掛
接”在與CPU相連接的系統(tǒng)總線。微型計(jì)算機(jī)與外設(shè)的連接線稱為
外總線,也稱為通信總線。它的功能就是實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)或
計(jì)算機(jī)與其他外設(shè)的信息傳送。
微型計(jì)算機(jī)工作時(shí),通過系統(tǒng)總線將指令讀到CPU;CPU的數(shù)
據(jù)通過系統(tǒng)總線寫入內(nèi)存單元;CPU將要輸出的數(shù)據(jù)經(jīng)系統(tǒng)總線寫
到接口,再由接口通過外總線傳送到外設(shè);當(dāng)外設(shè)有數(shù)據(jù)時(shí),經(jīng)
由外總線傳送到接口,再由CPU通過內(nèi)總線讀接口讀至IJCPU中。
?地址總線AB:用來傳送CPU輸出的地址信號,確定被訪問的存
儲單元、I/O端口。地址線的根數(shù)決定了CPU的尋址范圍。
CPU的尋址范圍二2n,n-地址線根數(shù)
?數(shù)據(jù)總線DB:在CPU與存儲器、I/O接口之間數(shù)據(jù)傳送的公共
通路。數(shù)據(jù)總線的條數(shù)決定CPU一次最多可以傳送的數(shù)據(jù)寬度。
?控制總線CB:用來傳送各種控制信號”
第1章微機(jī)基礎(chǔ)知識
2.微型計(jì)算機(jī)軟件系統(tǒng)
軟件系統(tǒng)是指為計(jì)算機(jī)運(yùn)行工作服務(wù)的全部技術(shù)資料和各種程序,它
可以保證計(jì)算機(jī)硬件的功能得以充分發(fā)揮。微機(jī)的軟件系統(tǒng)是由系統(tǒng)軟件、
應(yīng)用軟件組成。
?系統(tǒng)軟件通常包括:操作系統(tǒng)、語言處理程序、診斷調(diào)試程序、設(shè)
備驅(qū)動程序以及為提高機(jī)器效率而設(shè)計(jì)的各種程序。在系統(tǒng)軟件中,最重
要的軟件當(dāng)屬操作系統(tǒng),即OS(OperatingSystem),所有的應(yīng)用程序,
包括系統(tǒng)軟件中的一些程序,都要在操作系統(tǒng)構(gòu)筑的平臺上運(yùn)行。
?應(yīng)用軟件是為了解決各類應(yīng)用問題而編寫的程序。它直接面向用戶,
為用戶服務(wù)。應(yīng)用軟件也可以逐步標(biāo)準(zhǔn)化、模塊化、逐步形成了解決各種
典型問題的應(yīng)用程序的組合,稱為軟件包。
第2章微處理器及系統(tǒng)結(jié)構(gòu)
2.2Intel8086/8088CPU主要特性及內(nèi)部結(jié)構(gòu)
2.1.18086/8088CPU主要特性
Intel8086是16位微處理器,采用HM0S工藝40條引腳封裝,使用5V
電源,時(shí)鐘頻率5MHzo主要特性如下:
(1)8086CPU數(shù)據(jù)總線為16位,8088CPU數(shù)據(jù)總線為8位。
(2)地址總線都是20位,低16位與數(shù)據(jù)總線分時(shí)復(fù)用,可直接尋址1MB
的存儲空間。
(3)有16位的端口地址,可以尋址64KB的I/O端口。
(4)有99條基本指令,指令功能強(qiáng)大。
(5)有8種基本尋址方式。
(6)可處理內(nèi)部和外部中斷,外部中斷源多達(dá)256個(gè)。
(7)兼容性好,與80X86、8085在源程序一級兼容。
(8)8086可與和協(xié)處理器(8087、8089)組成多處理器系統(tǒng)。
第2章微處理器及系統(tǒng)結(jié)構(gòu)
8086CPU由兩部分即指令執(zhí)行單元EU和總線接口單元BIU組成。
指令執(zhí)行單元由算術(shù)邏輯運(yùn)算單元ALU、標(biāo)志寄存器FLAGS、通
用寄存器組和EU控制器等4個(gè)部件組成,其主要功能是執(zhí)行指令。
總線接口部件BIU由地址加法器、專用寄存器組、指令隊(duì)列和
總線控制邏輯等4個(gè)部件組成,其主要功能是形成訪問存儲器的物
理地址、訪問存儲器取得指令并暫存到指令隊(duì)列中等待執(zhí)行,訪問
存儲器或I/O端口以及讀取操作數(shù)參與EU運(yùn)算或存放運(yùn)算結(jié)果等。
BIU不斷地從存儲器取指令送入IPQ(指令預(yù)取隊(duì)列),EU不斷地
從IPQ取出指令執(zhí)行
EU和BIU構(gòu)成了一個(gè)簡單的2工位流水線
指令預(yù)取隊(duì)列IPQ是實(shí)現(xiàn)流水線操作的關(guān)鍵(類似于工廠流水
線的傳送帶)
令預(yù)取隊(duì)列的存在使EU和BIU兩個(gè)部分可同時(shí)進(jìn)行工作,帶來了以
下兩個(gè)好處:
?提高了CPU的效率
?降低了對存儲器存取速度的要求
?采用并行流水線工作方式
?對內(nèi)存空間實(shí)行分段管理:
>每段大小為16B?64KB
>用段地址和段內(nèi)偏移實(shí)現(xiàn)對1MB空間的尋址
>設(shè)置地址段寄存器指示段的首地址
8088與8086的區(qū)別:
1)8088BIU中指令隊(duì)列長度只有4B,8086BIU指令隊(duì)列長度有6B。
2)8088BIU通過總線控制電路與外部交換數(shù)據(jù)的總線寬度是8位,
總線控制電路與專用寄存器組之間的數(shù)據(jù)總線寬度也是8位,
而EU內(nèi)部總線仍是16位,所以把8088稱為準(zhǔn)16位微處理器。
?支持多處理器系統(tǒng)
?片內(nèi)無浮點(diǎn)運(yùn)算部件,浮點(diǎn)運(yùn)算由數(shù)學(xué)協(xié)處理器8087支持(或用
軟件模擬)
?8086(8088)微處理器不僅將微處理器的內(nèi)部寄存器擴(kuò)充至16位,
從而使尋址能力和算術(shù)邏輯運(yùn)算能力有了進(jìn)一步提高,而且由于
采取了上述一些措施,使得微處理器的綜合性能與8位微處理器相
比有了明顯的提高。
第2章微處理器及系統(tǒng)結(jié)構(gòu)
2.2.18086/8088CPU引腳功能
GND_____40Vcc(+5V)
AD.4ADI5
AD.3——A[6/S?
AD____A/s
1.8086/8088CPU的主要引腳及功能12174
AD”
_Aj9/S6
8086
AD?BHE/S7
ADCPUMN/MX
8086/8088CPU是十六位的微處理S
AD7RD
AD
6HOLD(RQ0/GT0)
器,它向外的信號至少應(yīng)包含16條數(shù)據(jù)AD5HLDA(RQ,/GT^
AD4WR(LOCK)
線,20條地址線,再加上其他一些必要AD,M/iocsZ)
AD,DT/R"(S?)
AD)
DEN(So)
的控制信號。為了減少芯片引腳數(shù)量,ADAIE(OS?)
0
NM1INTA(QSj)
INTRTEST
對部分引腳采用了分時(shí)復(fù)用的方式,構(gòu)CLKREADY
成40條引腳的雙列直插式封裝。GND_____2021_____RESET
a)
8086CPU封裝外形與內(nèi)部各功能部圖2-38086CPU封裝外形與實(shí)物圖
件之間的相互連接如圖2-3a)所示。a)封裝外形
引腳定義的方法可大致分為:—
?每個(gè)引腳只傳送一種信息(RD箜);
?引腳電平的高低不同的信號(m/M等);
?CPU工作于不同方式有不同的名稱和定義(WR/LOCK等);
?分時(shí)復(fù)用引腳(AD7?AD。等);
?引腳的輸入和輸出分別傳送不同的信息(RQ/GT等)。
8088分為兩種工作模式聲MN/前端狀態(tài)決定:
8086CPU上有MN/位輸入引線,用以決定8086CPU工作在哪種工
作模式之下。當(dāng)MN/MX=1時(shí),8086CPU工作在最小模式之下。止匕時(shí),
構(gòu)成的微型機(jī)中只包括一個(gè)8086CPU,且系統(tǒng)總線由CPU的引線形
成,微型機(jī)所用的芯片少。當(dāng)MN/MX=0時(shí),8086CPU工作在最大模
箕之下。
在此模式下,構(gòu)成的微型計(jì)算機(jī)中除了有8086CPU之外,還可
以接另外的CPU(如8087、8089等),構(gòu)成多微處理器系統(tǒng)。
1.最小模式下的引線
在最小模式下,8086CPU的引線如圖2.2所示(不包括括號內(nèi)
的信號)?,F(xiàn)對各引腳介紹如下:
Aw?A19/S3?$6:這是4條時(shí)間復(fù)用、二態(tài)輸出的引線。在8
086CPU執(zhí)行指令過程中,某一時(shí)刻從這4條線上送出地址的最高
4位A16?A19。而在另外時(shí)刻,這4條線送出狀態(tài)S3?S6。這些狀
態(tài)信息里,S6始終為低,S5指示狀態(tài)寄存器中的中斷允許標(biāo)志的
狀態(tài),它在每個(gè)時(shí)鐘周期開始時(shí)被更新,S,和S3用來指示CPU現(xiàn)
在正在使用的段寄存器.
S4、S3的狀態(tài)編碼
所代表的段寄存器
S4S3
00數(shù)據(jù)段寄存器
01堆棧段寄存器
10代碼段寄存器或不使用
11附加段寄存器
在CPU進(jìn)行輸入/輸出操作時(shí),不使用這4位地址,故在送出接口地
址的時(shí)間里,這4條線的輸出均為低電平。
在一些特殊情況下(如復(fù)位或DMA操作時(shí)),這4條線還可以
々卜干高陽(或浮空成二太)猶太
AD。?加5:?后是贏、£靠時(shí)分復(fù)用的輸入/輸出信號線,
其信號是經(jīng)三態(tài)門輸出的。由于8086微處理器只有40條引腳,而
它的數(shù)據(jù)線為16位,地址線為20位,因此引線數(shù)不能滿足信號輸
入/輸出的要求。則要選擇分時(shí)復(fù)用。
M/fO:它是CPU的三態(tài)輸出控制信號,用來區(qū)分當(dāng)前操作是
訪問存儲器還是訪問I/O端口。若該引腳輸出為低電平,則訪問的
是I/O端口;若該引腳輸出為高電平,則訪問的是存儲器。
WR:它是CPU的三態(tài)輸出控制信號。該引腳輸出為低電平時(shí),
表示CPU正處于寫存儲器或?qū)慖/O端口的狀態(tài)。
DT/R:該引腳是CPU的三態(tài)輸出控制信號,用于確定數(shù)據(jù)
傳送的方向。高電平為發(fā)送方向,即CPU寫數(shù)據(jù)到內(nèi)存或接口;低
電平為接收方向,即CPU到內(nèi)存或接口讀數(shù)據(jù)。該信號通常用于,數(shù)
據(jù)總線驅(qū)動器8286/8287(74245)的方向控制.
?DEN:這是CPU經(jīng)三態(tài)門輸出的控制信號。該信號有效時(shí),表示數(shù)據(jù)
總線上有有效的數(shù)據(jù)。它在每次訪問內(nèi)存或接口以及在中斷響應(yīng)
期間有效。它常用做數(shù)據(jù)總線驅(qū)動器的片選信號。
?ALE:三態(tài)輸出控制信號,高電平有效。當(dāng)它有效時(shí),表明CPU經(jīng)
其引線送出有效的地址信號。因此,它常作為鎖存控制信號將
Ao?A19鎖存于地址鎖存器的輸出端。
?RD:它是讀選通三態(tài)輸出信號,低電平有效。當(dāng)其有效時(shí),表示
CPU正在進(jìn)行存儲器或I/O讀操作。
?READY:它是準(zhǔn)備就緒輸入信號,高電平有效。當(dāng)CPU對存儲器或I
/0進(jìn)行操作時(shí),在T3周期開始采樣READY信號。若為高電平,表示
存儲器或I/O設(shè)備已準(zhǔn)備好;若其為低電平,表明被訪問的存儲
器或I/O設(shè)備還未準(zhǔn)備好數(shù)據(jù),則應(yīng)在T3周期以后,插入TWAIT周
期(等待周期),然后在TWAIT周期中再次采樣READY信號,直至REA
DY變?yōu)橛行Вǜ唠娖剑?,TWAIT周期才可以結(jié)束,進(jìn)入T4周期,完成
數(shù)據(jù)傳送。
?INTR:它是可屏蔽中斷請求輸入信號,高電平有效。CPU在每條指
令執(zhí)行的最后一個(gè)T狀態(tài)采樣該信號,以決定是否進(jìn)入中斷響應(yīng)周
期。這條引腳上的請求信號,可以用軟件復(fù)位內(nèi)部狀態(tài)寄存器中
的中斷允許位(IF)加以屏蔽。
?TEST:它是可用WAIT指令對該引腳進(jìn)行測試的輸入信號,低電平
有效。當(dāng)該信號有效時(shí),CPU繼續(xù)執(zhí)行程序;否則CPU就進(jìn)入等待
狀態(tài)(空轉(zhuǎn))。這個(gè)信號在每個(gè)時(shí)鐘周期的上升沿由內(nèi)部電路進(jìn)%
同步。A
NMI:它是屏蔽中斷輸入信號,邊沿觸發(fā),正跳變有效。這條引
腳上的信號不能用軟件復(fù)位內(nèi)部狀態(tài)寄存器中的中斷允許位(IF)予以
屏蔽,所以由低到高的變化將使CPU在現(xiàn)行指令執(zhí)行結(jié)束后就引起中斷。
RESET:它是CPU的復(fù)位輸入信號,高電平有效。為使CPU完成內(nèi)部
復(fù)位過程,該信號至少要在4個(gè)時(shí)鐘周期內(nèi)保持有效。復(fù)位后CPU內(nèi)部
寄存器的狀態(tài)如表2.2所示,各輸出引腳的狀態(tài)如表2.3所示。表2.3中
從麗【(S0)至IJ而1各引腳均處于浮動狀態(tài)。當(dāng)RESET返回低電平時(shí),
CPU將重新啟動。
表2.2復(fù)位后的內(nèi)部寄存器狀態(tài)
內(nèi)部寄存器內(nèi)容內(nèi)部寄存器內(nèi)容
狀態(tài)寄存器清除SS寄存器0000H
IP0000HES寄存器0000H
CS留?器FFFFH指令隊(duì)列寄存器清除
DS寄存器0000H
表2.3復(fù)位后各引腳的狀態(tài)
引腳名狀態(tài)引腳名狀態(tài)
AD。?AD7浮動RD輸出高電平后浮動
AD&~ADi5浮動INTA輸出高電平后浮動
A16/S3?A1966浮動ALE低電平
高電平HLDA低電平
BHE/S7
DEN(So)輸出高電平后浮動RQ/OT^高電平
DT/R(S,)輸出高電平后浮動RQ/GT;高電平
輸出高電平后浮動QSo低電平
M/IO(S2)
WR(LOCK)輸出高電平后浮動QSi低電平
而?。核荂PU輸出的中斷響應(yīng)信號,是CPU對外部
輸入的INTR中斷請求信號的響應(yīng)。在響應(yīng)中斷過程中,由
引出端送出兩個(gè)負(fù)脈沖,可用做外部中斷源的中斷向量碼的
讀選通信號。
HOLD:它是高電平有效的輸入信號,用于向CPU提出
保持請求。當(dāng)某一部件要占用系統(tǒng)總線時(shí),可通過這條輸入
線向CPU提出請求。
HLDA:這是CPU對HOLD請求的響應(yīng)信號,是高電
平有效的輸出信號。當(dāng)CPU收到有效的HOLD信號后,就
會對其做出響應(yīng):一方面使CPU的所有三態(tài)輸出的地址信
號、數(shù)據(jù)信號和相應(yīng)的控制信號變?yōu)楦咦锠顟B(tài)(浮動狀態(tài));
同時(shí)還輸出一個(gè)有效的HLDA,表示處理器現(xiàn)在已放棄對
總線的控制。當(dāng)CPU檢測到HOLD信號變低后,就立即使
HLDA變低,同時(shí)恢復(fù)對總線的控制。
而『/S7:它是時(shí)間復(fù)用的三態(tài)輸出信號。該信號有
效,用于讀/寫數(shù)據(jù)的高字節(jié)
(D8~Di5),用以保證8086可以一次讀/寫一個(gè)字節(jié)
(高字節(jié)或低字節(jié))或者讀/寫一個(gè)字(16位)。
CLK:這是時(shí)鐘信號輸入端。由它提供CPU和總線控
制器的定時(shí)信號。8086CPU的標(biāo)準(zhǔn)時(shí)鐘頻率為5MHZo
VCC:它是+5V電源輸入引腳。
GND:它是接地端。
2.最大模式下的引線
當(dāng)MN/H加上低電平時(shí),8086CPU工作在最大模式
之下。此時(shí),除引線24到34這幾條引線之外,其他引線與
最小模式完全相同。如圖2.2所示,圖中括號內(nèi)的信號就
是最大模式下重新定義的信號。
;[,3。:這是最大模式下由8086CPU經(jīng)三態(tài)門
輸出的4態(tài)信號。這些狀態(tài)信號加到Intel公司同時(shí)提供的
總線控制器(8288)上,可以產(chǎn)生系統(tǒng)總線所需要的各種控
制信號。的狀態(tài)編碼表示某時(shí)刻的狀
s2,s:,so8086CPU
態(tài),其編碼如表2.4所示。
從表2.4可以看到,當(dāng)8086CPU進(jìn)行不同操作時(shí),其
輸出的S2~So的狀態(tài)是不一樣的。因此,可以簡單地理
解為8288對這些狀態(tài)進(jìn)行譯碼,產(chǎn)生相應(yīng)的控制信號。
在本章的后面可以看到,8288總線控制器利用
S2~S。為構(gòu)成系統(tǒng)總線提供了足夠的控制信號。
表2.4So?§2的狀態(tài)編碼]
性能
s2So1
000中斷響應(yīng)1
讀I/O端口[
001
寫I/O端口|
1010
011暫停
取指]1
100
101讀存儲器1
110與存招&1
111無作用4
■二
RQ/GTo^RQ^GTi:它們是總線請求/允許引腳。每
一個(gè)引腳都具有雙向功能,既是總線請求輸入也是總線響
應(yīng)輸出。但是西/而°比血/Gfl具有更高的優(yōu)先權(quán)°這
些引腳內(nèi)部都有上拉電阻,所以在不使用時(shí)可以懸空n正
常使用時(shí)的工作順序大致如下:
?由其他的總線控制設(shè)備(例如數(shù)字協(xié)處理器8087)
產(chǎn)生寬度為一個(gè)時(shí)鐘周期的負(fù)向的總線請求脈沖,將它送
給RQ/GT引腳,相當(dāng)于HOLD信號。
?CPU檢測到這個(gè)請求后,在下一個(gè)T4或T1期間,
在同一個(gè)引腳輸出寬度為一個(gè)時(shí)鐘周期的負(fù)向脈沖給請求
總線的設(shè)備,作為總線響應(yīng)信號,相當(dāng)于HLDA信號。這樣
從下一個(gè)時(shí)鐘周期開始,CPU就釋放總線,總線請求設(shè)備
便可以利用總線完成某種操作。
?總線請求設(shè)備在對總線操作結(jié)束后,再產(chǎn)生一個(gè)
寬度為一個(gè)時(shí)鐘周期的負(fù)向脈沖,通過該引腳送給CPU,
它表示總線請求已結(jié)束。CPU檢測到該結(jié)束信號后,從下
一個(gè)時(shí)鐘周期開始又重新控制總線,繼續(xù)執(zhí)行剛才因其他
總線設(shè)備請求總線而暫時(shí)停止的操作。
*
后,:它是一個(gè)總線封鎖信號,低電平有效。該信號
有效時(shí),別的總線控制設(shè)備的總線請求信號將被封鎖,不
能獲得對系統(tǒng)總線的控制。嬴【信號由前綴指令
“LOCK”使其有效,直至下一條指令執(zhí)行完畢。
QS1,QS0:它們是CPU輸出的隊(duì)列狀態(tài)信號。根據(jù)
該狀態(tài)信號輸出,從外部可以跟蹤C(jī)PU內(nèi)部的指令隊(duì)列。
QS1,QS0的編碼如表2.5所示。隊(duì)列狀態(tài)在CLK周期期間
有效。
表2.5QSO,QS1的狀態(tài)編碼
性能
QSiQS0
00無操作
01隊(duì)列中操作碼的第一個(gè)字節(jié)
10隊(duì)列空
11隊(duì)列中非第一個(gè)操作舊字節(jié)
t
2.2.38088CPU的弓I線及其功能
8086CPU和8088CPU的內(nèi)部總線及內(nèi)部寄存器均為
16位,是完全相同的。但是,8088CPU的外部數(shù)據(jù)線是8
位的,即AD0~AD7,每一次傳送數(shù)據(jù)只能是8位。而
8086CPU是真正的16位處理器,每一次傳送數(shù)據(jù)既可以
是16位也可以是8位(高8位或低8位)的。它們有相同的內(nèi)
部寄存器和指令系統(tǒng),在軟件上是互相兼容的。8088
CPU的引線如圖2.3所示。
GND40——Vcv
AM239Aj?
Atj338
A|j437An/S4
An536"Ajg/S3
Ajo635AJQ/SG
7
~5?)o(HiCjr1)
833MN/MX
AD7932RD
ADn——to31HOLD/(RQ/OT(>)
AD51130HLDA/(RQ/GTO
AD41229WR(LOCK)
ADj1328lO/MfS;)
AD21427DT/R(S.)
ADi1526DEN(So)
AD。--1625ALE(QSo)
NMI1724INTACQS))
INTR1823TEST
CLK1922READY
GND202!RESET
圖2.38088CPU弓I線
對照圖2.2和圖2.3,可以發(fā)現(xiàn)它們之間的主要不同表現(xiàn)
在引線上:
(1)由于8088CPU外部一次只傳送8位數(shù)據(jù),因此其引
線Ag?A15僅用于輸出地址信號。而8086則將此8條線變?yōu)?/p>
雙向分時(shí)復(fù)用的即某一時(shí)刻送出地址
ADg?AD15,Ag?A15,
而另一時(shí)刻則用這8條線傳送數(shù)據(jù)的高8位Dg?D15。在進(jìn)行
16位數(shù)據(jù)操作時(shí),8088CPU一定需要兩個(gè)總線周期才能完
成16位數(shù)據(jù)操作,而8086CPU可能只用一個(gè)總線周期、一
次總線操作就可完成。因此,8086的速度較8088要快一些。
(2)8086CPU上白如HE/S7信號在8088上%。
(HIGH)信號。這是一條狀態(tài)輸出線。它與10/M和DT/I
信號一起,決定了8088CPU在最小模式下現(xiàn)行總線周期的
狀態(tài)。它們的不同電平所表示的處理器操作情況如表2.6所
2'O
表2.6IO/M,DT/R,可狀態(tài)編碼
10/MDT/Rss;性能
100中斷響應(yīng)
101讀I/O端口
110寫I/O端口
111暫停
000取指
001讀存儲器
010寫存儲器
011無作用t
HIGH:在最大模式時(shí)始終為高電平輸出。
⑶8088的引線28是10/而,即CPU訪問內(nèi)存時(shí)該引線
輸出低電平;訪問接口時(shí)則輸出高電平。對8086而言,該弓|
線的狀態(tài)剛好相反,即變?yōu)镸/記:
當(dāng)然,兩者內(nèi)部的指令預(yù)取隊(duì)列長度不一樣,這在前面
已經(jīng)提到,8088CPU為4個(gè)字節(jié)而8086CPU為6個(gè)字節(jié)。從應(yīng)
用的角度來說,這一不同并不重要,
第2章微處理器及系統(tǒng)結(jié)構(gòu)
2.2.48086/8088CPU內(nèi)部結(jié)構(gòu)
8086總線
^=>
圖278086CPU內(nèi)部結(jié)構(gòu)框圖
一條命令的執(zhí)行過程一般分為:
取指令
取操作數(shù)
執(zhí)行指令
寫入存儲器
8088出現(xiàn)以前以上步驟順序執(zhí)行(串行)
8086內(nèi)部的BIU和EU兩個(gè)獨(dú)立單元,可獨(dú)立完成總
線操作和指令執(zhí)行兩個(gè)操作,即兩個(gè)單元可重疊操作,
可兩次或多次重疊。
?8088以前的CPU采用串行工作方式:
■??■■
,,,■,,
CPU■■■,■,
?’,?
BUS忙碌忙碌忙碌忙碌
1)CPU訪問存儲器(存取數(shù)據(jù)或指令)時(shí)要等待總線操作的完成
2)CPU執(zhí)行指令時(shí)總線處于空閑狀態(tài)
缺點(diǎn):CPU無法全速運(yùn)行
解決:總線空閑時(shí)預(yù)取指令,使CPU需要指令時(shí)能立刻得到
?8088CPU采用并行工作方式
執(zhí)行1執(zhí)行2執(zhí)行3
J
忙碌忙碌忙碌忙碌忙碌忙碌
;4
第2章微處理器及系統(tǒng)結(jié)構(gòu)
8086CPU的寄存器結(jié)構(gòu)
15870
1、8086CPU中有14個(gè)16位的寄存器。AXAHAL累加器]
BXBHBL基址寄存器數(shù)據(jù)
A;
CXCHCL計(jì)數(shù)寄存器等存器
通
A8個(gè)16位通用寄存器;DXDHDL數(shù)據(jù)寄存器用
>寄
SP堆棧指針寄存器存
A2個(gè)16位指針寄存器;器
BP基址指針寄存器
1指針和變址組
SI源變址寄存器寄存器
A2個(gè)16位的變址寄存器;DI目的變址寄存器J7
IP指令指針寄存器]
A4個(gè)16位的段寄存器;控制寄存器組
FLAGS標(biāo)志寄存器J
A1個(gè)16位指令指針;CS代碼段寄存器
DS數(shù)據(jù)段寄存器
?段寄存器組
A1個(gè)16位標(biāo)志寄存器。SS堆棧段寄存器
ES附加段寄存器,
8086/8088CPU的內(nèi)部寄存器如圖2圖2-28086/8088CPU內(nèi)部寄存器
-2所小。
2、8086(8088)的內(nèi)部寄存器
含14個(gè)16位寄存器,按功能可分為三類
8個(gè)通用寄存器
4個(gè)段寄存器
2個(gè)控制寄存器
數(shù)據(jù)寄存器(AX,BX,CX,DX)
地址指針寄存器(SP,BP)變址寄存器(SI,DI)
8個(gè)16位通用寄存器,它們可分成兩組。一組由AX、
BX、CX和DX構(gòu)成,稱為數(shù)據(jù)寄存器,可用來存放16位
的數(shù)據(jù)或地址,也可把它們當(dāng)作8個(gè)8位寄存器來使用,
即把每個(gè)通用寄存器的高半部分和低半部分分開。低
半部分被命名為AL、BL、CL和DL;高半部分則被命名
為AH、BH、CH和DH。8位寄存器只能存放數(shù)據(jù)而不能氟
放地址.■
8086(8088)數(shù)據(jù)寄存器
8088含4個(gè)16位數(shù)據(jù)寄存器,它們
又可分為8個(gè)8位寄存器,即:
?AXAH,AL
?BXBH,BL
?CXCH,CL
?DX—>DH,DL
常用來存放參與運(yùn)算的操作數(shù)或運(yùn)算結(jié)果
數(shù)據(jù)寄存器的用法
?AX:累加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令必須都通過AX與接
口傳送彳言息;
?BX:基址寄存器??纱鏀?shù)據(jù)或在間接尋址中用于存放基地址;還可用于
尋址。
?CX:計(jì)數(shù)寄存器??纱鏀?shù)據(jù)還可用于在循環(huán)或串操作指令中存放循環(huán)次
數(shù)或重復(fù)次藪;
?DX:數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時(shí),存放高16位數(shù);在間接尋址的I
/0指令中存放I/O端口地址。
指針寄存器(地址)
?SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;a
?BP:基址指針寄存器,常用于在訪問內(nèi)存時(shí)存放內(nèi)存單元的偏移地址。
BX與BP在應(yīng)用上的區(qū)別
■作為通用寄存器,二者均可用于存放數(shù)據(jù);
?作為基址寄存器,BX通常用于尋址數(shù)據(jù)段;BP則通常
用于尋址堆棧段。
?BX一般與DS或ES搭配使用
變址寄存器
?SI:源變址寄存器
?DI:目標(biāo)變址寄存器
?變址寄存器常用于指令的間接尋址或變址尋址。特別
是在串操作指令中,用SI存放源操作數(shù)的偏移地址,
而用DI存放目標(biāo)操作數(shù)的偏移地址。
控制寄存器
?IP:指令指針寄存器,(16位)它和代碼寄存器C
S一起可以確定當(dāng)前所要取的指令的內(nèi)存地址。CP
U執(zhí)行程序的地址總是為CSX16+IPo當(dāng)順序
執(zhí)行程序時(shí),CPU每從內(nèi)存取一個(gè)指令字節(jié),IP自
動加1,指向下一個(gè)要讀取的指令。其內(nèi)容為下一
條要執(zhí)行的指令的偏移地址
當(dāng)CS不變、IP單獨(dú)改變時(shí),會發(fā)生段內(nèi)程
序轉(zhuǎn)移;當(dāng)CS和IP同時(shí)改變時(shí),會發(fā)生段間程
序轉(zhuǎn)移。
PSW是程序狀態(tài)字,也有人稱它為狀態(tài)寄存
器或標(biāo)志寄存器,它用來存放8086CPU在工作過
程中的狀態(tài)。PSW各位標(biāo)志如圖
IS0
標(biāo)志寄存器是一個(gè)16位的寄存器,空著的各位暫未使用。80
86中所用的9位對了解8086CPU的工作和用匯編語言編寫程序是很
重要的。這些標(biāo)志位的含義如下:
C一進(jìn)位標(biāo)志位。做加法時(shí)出現(xiàn)進(jìn)位或做減法時(shí)出現(xiàn)借位,
該標(biāo)志位置1;否則清0。位移和循環(huán)指令也影響進(jìn)位標(biāo)志。
P一奇偶標(biāo)志位。當(dāng)結(jié)果的低8位中1的個(gè)數(shù)為偶數(shù)時(shí),則該
標(biāo)志位置1;否則清0。
A一半加標(biāo)志位。做加法時(shí),當(dāng)位3需向位4進(jìn)位,或做減
法時(shí)位3需向位4借位時(shí),該標(biāo)志位置1;否則清0。該標(biāo)志位通常
用于對BCD算術(shù)運(yùn)算結(jié)果的調(diào)整。
Z一零標(biāo)志位。運(yùn)算結(jié)果所有位均為0時(shí),該標(biāo)志
位置1;否則清0。
S一符號標(biāo)志位。當(dāng)運(yùn)算結(jié)果的最高位為1時(shí),該
標(biāo)志位置1;否則清0。
T一陷阱標(biāo)志位(單步標(biāo)志位)。當(dāng)該位置1時(shí),將
使8086執(zhí)行單步指令工作方式。在每條指令執(zhí)行結(jié)束
時(shí),CPU總是去測試T標(biāo)志位是否為1。如果為1,那么
在本指令執(zhí)行后將產(chǎn)生陷阱中斷,從而執(zhí)行陷阱中斷
處理程序。該中斷處理程序的首地址由內(nèi)存的00004
H-00007H4個(gè)單元提供。該標(biāo)志位通常用于程序的調(diào)
試。例如,系統(tǒng)調(diào)試軟件DEBUG中的T命令,就是利用
它來進(jìn)行程序的單步跟蹤的。
I一中斷允許標(biāo)志位。如果該位置1,則處理器可
以響應(yīng)可屏蔽中斷請求;否則就不能響應(yīng)可屏蔽中斷
請求O
D一方向標(biāo)志位。當(dāng)該位置1時(shí),串操作指令為自
動減量指令,即從高地址到低地址處理字符串;否則
串操作指令為自動增量指令。
0一溢出標(biāo)志位。在算術(shù)運(yùn)算中,帶符號數(shù)的運(yùn)算
結(jié)果超出了8位或16位帶符號數(shù)所能表達(dá)的范圍,即字
節(jié)運(yùn)算大于+127或小于T28時(shí),字運(yùn)算大于+3276
7或小于-32768時(shí),該標(biāo)志位置位。
段寄存器
4個(gè)16位段寄位器,它們是代碼段寄存器CS,用于存放當(dāng)前代碼段
的段地址;數(shù)據(jù)段寄存器DS,用于存放當(dāng)前數(shù)據(jù)段的段地址;附加段寄
存器ES,用于存放當(dāng)前附加段的段地址;堆棧段寄存器SS,用于存放當(dāng)
前堆棧段的段地址。這些段寄存器彼此不能互換,每個(gè)段寄存器在只能
尋址64KB。
CS:代碼段寄存器
代碼段用于存放指令代碼
DS:數(shù)據(jù)段寄存器
ES:附加段寄存器
數(shù)據(jù)段和附加段用來存放操作數(shù)
SS:堆棧段寄存器
堆棧段用于存放返回地址,保存寄存器內(nèi)容,-
傳遞參數(shù)?
物理地址與邏輯地址
在具有地址變化機(jī)構(gòu)的計(jì)算機(jī)中地址有兩
種物理地址和邏輯地址
邏輯地址:允許在程序中編排的地址
物理地址:信息在存儲器中實(shí)際存放的地址
8086(8088)每個(gè)存儲單元也都認(rèn)為有這兩種
地址
物理地址
物理地址
60000H
存儲器的操作完全基于60001H
物理地址。60002H
60003H
?問題:60004H
8088的內(nèi)部總線和內(nèi)部
寄存器均為16位,如何
生成20位地址?
A解決:存儲器分段
存儲器分段
一個(gè)段是存儲器的一個(gè)邏輯單元,長度達(dá)64KB,每
個(gè)段都由連續(xù)的存儲單元構(gòu)成,使存儲器中可獨(dú)立的分別
尋址的單位。
每段第一個(gè)字節(jié)的位置成為“段起始地址”.
每個(gè)段可相互重疊,也可指向同一空間.
8086(8088)CPU有20條地址線,可配置1M存儲器,地址
為00000H——FFFFOHo
1M
存儲器分段
低地址
段基址八
段i—最大64KB,最小16B
段基址1——
段i
段基址
段i+1
段基址
高地址
?段基地址和段內(nèi)偏移組成了邏輯地址
段地址偏移地址(偏移量)夕―一60000
格式為:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園里的人物課程設(shè)計(jì)
- 情緒abc課程設(shè)計(jì)
- 擇業(yè)概論課程設(shè)計(jì)
- 微噴灌溉系統(tǒng)課程設(shè)計(jì)
- 推土機(jī)驅(qū)動橋課程設(shè)計(jì)
- 怎樣做好英語培訓(xùn)課程設(shè)計(jì)
- 青島黃海學(xué)院《培訓(xùn)理論與實(shí)務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 青島恒星科技學(xué)院《農(nóng)藥安全使用技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 幼兒園植物仿生課程設(shè)計(jì)
- 應(yīng)急原理慕課課程設(shè)計(jì)
- 民辦學(xué)校教職工入職背景審查制度
- 2024年新人教版四年級數(shù)學(xué)上冊《教材練習(xí)21練習(xí)二十一(附答案)》教學(xué)課件
- 大國三農(nóng)II-農(nóng)業(yè)科技版智慧樹知到期末考試答案章節(jié)答案2024年中國農(nóng)業(yè)大學(xué)
- 2024年湛江市農(nóng)業(yè)發(fā)展集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 二級公立醫(yī)院績效考核三級手術(shù)目錄(2020版)
- 6人小品《沒有學(xué)習(xí)的人不傷心》臺詞完整版
- 勞動合同法測試題含答案
- 自閉癥兒童行為檢核表學(xué)前版
- 五年級上冊數(shù)學(xué)專項(xiàng)練習(xí)高的畫法 全國通用
- 民警個(gè)人季度小結(jié)范文(3篇)
- 商場商戶裝修入駐工作流程
評論
0/150
提交評論