微機(jī)原理第2章_第1頁(yè)
微機(jī)原理第2章_第2頁(yè)
微機(jī)原理第2章_第3頁(yè)
微機(jī)原理第2章_第4頁(yè)
微機(jī)原理第2章_第5頁(yè)
已閱讀5頁(yè),還剩115頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1第2章微處理器與總線2主要內(nèi)容:微處理器的功能和結(jié)構(gòu)8088/8086微處理器特點(diǎn)主要引線功能和內(nèi)部結(jié)構(gòu)內(nèi)部寄存器實(shí)地址模式下的存儲(chǔ)器尋址總線時(shí)序總線一、微處理器及8088/8086CPU31.微處理器運(yùn)算器(P35)控制器(P37)內(nèi)部寄存器4微處理器52.程序和指令程序:具有一定功能的指令的有序集合指令:由人向計(jì)算機(jī)發(fā)出的、能夠?yàn)橛?jì)算機(jī)所識(shí)別的命令。早期計(jì)算機(jī)指令執(zhí)行過(guò)程:指令花費(fèi)時(shí)間=取指+指令執(zhí)行8086CPU指令執(zhí)行過(guò)程:指令花費(fèi)時(shí)間=指令執(zhí)行3.指令執(zhí)行的一般過(guò)程74.順序執(zhí)行和并行流水線順序執(zhí)行方式:各功能部件交替工作,按順序完成指令的執(zhí)行過(guò)程。并行流水線方式:各功能部件并行工作。85.

8088/8086CPU的特點(diǎn)采用并行流水線工作方式

——通過(guò)設(shè)置指令預(yù)取隊(duì)列實(shí)現(xiàn)對(duì)內(nèi)存空間實(shí)行分段管理

——

將內(nèi)存分為4個(gè)段并設(shè)置地址段寄存器,以實(shí)現(xiàn)對(duì)1MB空間的尋址支持多處理器系統(tǒng)CPU內(nèi)部結(jié)構(gòu)存儲(chǔ)器尋址部分工作模式96.8088CPU的兩種工作模式8088可工作于兩種模式下最小模式最大模式最小模式為單處理器模式。最大模式為多處理器模式。10兩種工作模式的選擇方式8088是工作在最小還是最大模式由MN/MX引線的狀態(tài)決定。MN/MX=0——工作于最大模式MN/MX=1——工作于最小模式11二、8088/8086的引線及功能2.2.28086微處理器的引腳功能外部特性表現(xiàn)在其引腳信號(hào)上,學(xué)習(xí)時(shí)請(qǐng)?zhí)貏e關(guān)注以下幾個(gè)方面:⑴引腳的功能⑵信號(hào)的流向⑶有效電平⑷三態(tài)能力指引腳信號(hào)的定義、作用;通常采用英文單詞或其縮寫表示信號(hào)從芯片向外輸出,還是從外部輸入芯片,或者是雙向的起作用的邏輯電平高、低電平有效上升、下降邊沿有效輸出正常的低電平、高電平外,還可以輸出高阻的第三態(tài)8088/8086的兩種組態(tài)模式兩種組態(tài)構(gòu)成兩種不同規(guī)模的應(yīng)用系統(tǒng)最小組態(tài)模式構(gòu)成小規(guī)模的應(yīng)用系統(tǒng)8088本身提供所有的系統(tǒng)總線信號(hào)最大組態(tài)模式構(gòu)成較大規(guī)模的應(yīng)用系統(tǒng),例如可以接入數(shù)值協(xié)處理器80878088和總線控制器8288共同形成系統(tǒng)總線信號(hào)8088的兩種組態(tài)模式(續(xù))兩種組態(tài)利用MN/MX*引腳區(qū)別MN/MX*接高電平為最小組態(tài)模式MN/MX*接低電平為最大組態(tài)模式通常在信號(hào)名稱加上劃線(如:MX)或星號(hào)(如:MX*)表示低電平有效8088的引腳圖12345678910111213141516171819204039383736353433323130292827262524232221

GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6SS0*MN/MX*RD*HOLD(RQ)*/GT0*)HLDA(RQ1*/GT1*)WR*(LOCK*)M*/IO(S2*

)DT/R*(S1*

)DEN*(S0

)ALE(QS0)INTA*(QS1)TEST*READYRESET8088最小組態(tài)的引腳信號(hào)數(shù)據(jù)和地址引腳讀寫控制引腳中斷請(qǐng)求和響應(yīng)引腳總線請(qǐng)求和響應(yīng)引腳其它引腳 1.數(shù)據(jù)和地址引腳AD15~AD0(Address/Data)地址/數(shù)據(jù)分時(shí)復(fù)用引腳,雙向、三態(tài)在訪問(wèn)存儲(chǔ)器或外設(shè)的總線操作周期中,這些引腳在第一個(gè)時(shí)鐘周期輸出存儲(chǔ)器或I/O端口的低16位地址A15~A0其他時(shí)間用于傳送16位數(shù)據(jù)1.數(shù)據(jù)和地址引腳(續(xù)1)A15~A8(Address)

中間8位地址引腳,輸出、三態(tài)這些引腳在訪問(wèn)存儲(chǔ)器或外設(shè)時(shí),提供全部20位地址中的中間8位地址A15~A81.數(shù)據(jù)和地址引腳(續(xù)2)A19/S6~A16/S3(Address/Status)地址/狀態(tài)分時(shí)復(fù)用引腳,輸出、三態(tài)這些引腳在訪問(wèn)存儲(chǔ)器的第一個(gè)時(shí)鐘周期輸出高4位地址A19~A16在訪問(wèn)外設(shè)的第一個(gè)時(shí)鐘周期全部輸出低電平無(wú)效其他時(shí)間輸出狀態(tài)信號(hào)S6~S32.讀寫控制引腳ALE(AddressLatchEnable)地址鎖存允許,輸出、三態(tài)、高電平有效ALE引腳高有效時(shí),表示復(fù)用引腳:AD15~AD0和A19/S6~A16/S3正在傳送地址信息由于地址信息在這些復(fù)用引腳上出現(xiàn)的時(shí)間很短暫,所以系統(tǒng)可以利用ALE引腳將地址鎖存起來(lái)2.讀寫控制引腳(續(xù)1)IO/M*(InputandOutput/Memory)

I/O或存儲(chǔ)器訪問(wèn),輸出、三態(tài)該引腳輸出高電平時(shí),表示CPU將訪問(wèn)I/O端口,這時(shí)地址總線A15~A0提供16位I/O口地址該引腳輸出低電平時(shí),表示CPU將訪問(wèn)存儲(chǔ)器,這時(shí)地址總線A19~A0提供20位存儲(chǔ)器地址2.讀寫控制引腳(續(xù)2)WR*(Write)

寫控制,輸出、三態(tài)、低電平有效有效時(shí),表示CPU正在寫出數(shù)據(jù)給存儲(chǔ)器或I/O端口RD*(Read)讀控制,輸出、三態(tài)、低電平有效有效時(shí),表示CPU正在從存儲(chǔ)器或I/O端口讀入數(shù)據(jù)2.讀寫控制引腳(續(xù)3)IO/M*、WR*和RD*是最基本的控制信號(hào)組合后,控制4種基本的總線周期總線周期IO/M*WR*RD*存儲(chǔ)器讀低高低存儲(chǔ)器寫低低高I/O讀高高低I/O寫高低高2.讀寫控制引腳(續(xù)4)READY

存儲(chǔ)器或I/O口就緒,輸入、高電平有效在總線操作周期中,8086CPU會(huì)在第3個(gè)時(shí)鐘周期的前沿測(cè)試該引腳如果測(cè)到高有效,CPU直接進(jìn)入第4個(gè)時(shí)鐘周期如果測(cè)到無(wú)效,CPU將插入等待周期TwCPU在等待周期中仍然要監(jiān)測(cè)READY信號(hào),有效則進(jìn)入第4個(gè)時(shí)鐘周期,否則繼續(xù)插入等待周期Tw。2.讀寫控制引腳(續(xù)5)DEN*(DataEnable)

數(shù)據(jù)允許,輸出、三態(tài)、低電平有效有效時(shí),表示當(dāng)前數(shù)據(jù)總線上正在傳送數(shù)據(jù),可利用他來(lái)控制對(duì)數(shù)據(jù)總線的驅(qū)動(dòng)DT/R*(DataTransmit/Receive)數(shù)據(jù)發(fā)送/接收,輸出、三態(tài)該信號(hào)表明當(dāng)前總線上數(shù)據(jù)的流向高電平時(shí)數(shù)據(jù)自CPU輸出(發(fā)送)低電平時(shí)數(shù)據(jù)輸入CPU(接收)2.讀寫控制引腳(續(xù)6)BHE*/S7(SystemStatus0)

高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳低電平時(shí),高8位數(shù)據(jù)線D15~D8上的數(shù)據(jù)有效,S7沒(méi)有賦于任何意義.3.中斷請(qǐng)求和響應(yīng)引腳INTR(InterruptRequest)

可屏蔽中斷請(qǐng)求,輸入、高電平有效有效時(shí),表示請(qǐng)求設(shè)備向CPU申請(qǐng)可屏蔽中斷該請(qǐng)求的優(yōu)先級(jí)別較低,并可通過(guò)關(guān)中斷指令CLI清除標(biāo)志寄存器中的IF標(biāo)志、從而對(duì)中斷請(qǐng)求進(jìn)行屏蔽3.中斷請(qǐng)求和響應(yīng)引腳(續(xù)1)INTA*(InterruptAcknowledge)

可屏蔽中斷響應(yīng),輸出、低電平有效有效時(shí),表示來(lái)自INTR引腳的中斷請(qǐng)求已被CPU響應(yīng),CPU進(jìn)入中斷響應(yīng)周期中斷響應(yīng)周期是連續(xù)的兩個(gè),每個(gè)都發(fā)出有效響應(yīng)信號(hào),以便通知外設(shè)他們的中斷請(qǐng)求已被響應(yīng)、并令有關(guān)設(shè)備將中斷向量號(hào)送到數(shù)據(jù)總線3.中斷請(qǐng)求和響應(yīng)引腳(續(xù)2)NMI(Non-MaskableInterrupt)

不可屏蔽中斷請(qǐng)求,輸入、上升沿有效有效時(shí),表示外界向CPU申請(qǐng)不可屏蔽中斷該請(qǐng)求的優(yōu)先級(jí)別高于INTR,并且不能在CPU內(nèi)被屏蔽當(dāng)系統(tǒng)發(fā)生緊急情況時(shí),可通過(guò)他向CPU申請(qǐng)不可屏蔽中斷服務(wù)主機(jī)與外設(shè)進(jìn)行數(shù)據(jù)交換通常采用可屏蔽中斷不可屏蔽中斷通常用于處理掉電等系統(tǒng)故障4.總線請(qǐng)求和響應(yīng)引腳HOLD總線保持(即總線請(qǐng)求),輸入、高電平有效有效時(shí),表示總線請(qǐng)求設(shè)備向CPU申請(qǐng)占有總線該信號(hào)從有效回到無(wú)效時(shí),表示總線請(qǐng)求設(shè)備對(duì)總線的使用已經(jīng)結(jié)束,通知CPU收回對(duì)總線的控制權(quán)DMA控制器等主控設(shè)備通過(guò)HOLD申請(qǐng)占用系統(tǒng)總線(通常由CPU控制)4.總線請(qǐng)求和響應(yīng)引腳(續(xù)1)HLDA(HOLDAcknowledge)總線保持響應(yīng)(即總線響應(yīng)),輸出、高電平有效有效時(shí),表示CPU已響應(yīng)總線請(qǐng)求并已將總線釋放此時(shí)CPU的地址總線、數(shù)據(jù)總線及具有三態(tài)輸出能力的控制總線將全面呈現(xiàn)高阻,使總線請(qǐng)求設(shè)備可以順利接管總線待到總線請(qǐng)求信號(hào)HOLD無(wú)效,總線響應(yīng)信號(hào)HLDA也轉(zhuǎn)為無(wú)效,CPU重新獲得總線控制權(quán)5.其它引腳RESET復(fù)位請(qǐng)求,輸入、高電平有效該信號(hào)有效,將使CPU回到其初始狀態(tài);當(dāng)他再度返回?zé)o效時(shí),CPU將重新開(kāi)始工作復(fù)位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0H5.其它引腳(續(xù)1)CLK(Clock)

時(shí)鐘輸入系統(tǒng)通過(guò)該引腳給CPU提供內(nèi)部定時(shí)信號(hào)。8086的標(biāo)準(zhǔn)工作時(shí)鐘為5MHz5.其它引腳(續(xù)2)Vcc電源輸入,向CPU提供+5V電源GND接地,向CPU提供參考地電平MN/MX*(Minimum/Maximum)組態(tài)選擇,輸入接高電平時(shí),8086引腳工作在最小組態(tài);反之,8086工作在最大組態(tài)5.其它引腳(續(xù)3)TEST*測(cè)試,輸入、低電平有效該引腳與WAIT指令配合使用當(dāng)CPU執(zhí)行WAIT指令時(shí),他將在每個(gè)時(shí)鐘周期對(duì)該引腳進(jìn)行測(cè)試:如果無(wú)效,則程序踏步并繼續(xù)測(cè)試;如果有效,則程序恢復(fù)運(yùn)行也就是說(shuō),WAIT指令使CPU產(chǎn)生等待,直到引腳有效為止“引腳”小結(jié)CPU引腳是系統(tǒng)總線的基本信號(hào)可以分成三類信號(hào):16位數(shù)據(jù)線:D0~D1520位地址線:A0~A19控制線:ALE、IO/M*、WR*、RD*、READYINTR、INTA*、NMI,HOLD、HLDARESET、CLK、Vcc、GND有問(wèn)題!“引腳”提問(wèn)提問(wèn):CPU引腳是如何與外部連接的呢?

解答:總線形成最大組態(tài)的引腳定義8088的數(shù)據(jù)/地址等引腳在最大組態(tài)與最小組態(tài)時(shí)相同有些控制信號(hào)不相同,主要是用于輸出操作編碼信號(hào),由總線控制器8288譯碼產(chǎn)生系統(tǒng)控制信號(hào):S2*、S1*、S0*——3個(gè)狀態(tài)信號(hào)LOCK*——總線封鎖信號(hào)QS1、QS0——指令隊(duì)列狀態(tài)信號(hào)RQ*/GT0*、RQ*/GT1*——2個(gè)總線請(qǐng)求/同意信號(hào)S2*、S1*、S0*的編碼意義S2*S1*S0*CPU的工作狀態(tài)000中斷響應(yīng)001I/O讀010I/O寫011暫停100取指101存儲(chǔ)器讀110存儲(chǔ)器寫111過(guò)渡狀態(tài)(3)系統(tǒng)控制信號(hào)的形成由8088引腳直接提供因?yàn)榛镜目刂菩盘?hào)8088引腳中都含有例如:IO/M*、WR*、RD*等其它信號(hào)的情況看詳圖41三、8088/8086的內(nèi)部結(jié)構(gòu)2.2.38088/8086的功能結(jié)構(gòu)8088內(nèi)部結(jié)構(gòu)有兩個(gè)功能模塊,完成一條指令的取指和執(zhí)行功能(p43)模塊之一:總線接口單元BIU,主要負(fù)責(zé)讀取指令和操作數(shù)模塊之二:執(zhí)行單元EU,主要負(fù)責(zé)指令譯碼和執(zhí)行內(nèi)部結(jié)構(gòu)指令執(zhí)行8088內(nèi)部結(jié)構(gòu)內(nèi)部暫存器

IP

ES

SSDSCS輸入/輸出控制電路外部總線執(zhí)行部分控制電路123456∑ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊(duì)列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位441.組成8088/8086內(nèi)部由兩部分組成:

執(zhí)行單元(EU)總線接口單元(BIU)452.執(zhí)行單元運(yùn)算器8個(gè)通用寄存器1個(gè)標(biāo)志寄存器EU部分控制電路教材第43頁(yè)圖2-6圖46執(zhí)行單元功能指令譯碼指令執(zhí)行暫存中間運(yùn)算結(jié)果保存運(yùn)算結(jié)果特征指令的執(zhí)行在標(biāo)志寄存器FLAGS中在ALU中完成在通用寄存器中473.總線接口單元功能:從內(nèi)存中取指令到指令預(yù)取隊(duì)列指令預(yù)取隊(duì)列是并行流水線工作的基礎(chǔ)負(fù)責(zé)與內(nèi)存或輸入/輸出接口之間的數(shù)據(jù)傳送在執(zhí)行轉(zhuǎn)移程序時(shí),BIU使指令預(yù)取隊(duì)列復(fù)位,從指定的新地址取指令,并立即傳給執(zhí)行單元執(zhí)行。48結(jié)論指令預(yù)取隊(duì)列的存在使EU和BIU兩個(gè)部分可同時(shí)進(jìn)行工作,從而:提高了CPU的效率;降低了對(duì)存儲(chǔ)器存取速度的要求49四、8088/8086內(nèi)部寄存器基本程序執(zhí)行寄存器對(duì)匯編語(yǔ)言程序員來(lái)說(shuō),8088/8086內(nèi)部結(jié)構(gòu)就是可編程的寄存器組執(zhí)行單元EU8個(gè)通用寄存器

1個(gè)指令指針寄存器

1個(gè)標(biāo)志寄存器

4個(gè)段寄存器1.8088/8086的通用寄存器16位通用寄存器是: AX BX CX DX SI DI BP SP其中前4個(gè)數(shù)據(jù)寄存器都還可以分成高8位和低8位兩個(gè)獨(dú)立的寄存器8位通用寄存器是:AH BH CH DHAL BL CL DL對(duì)其中某8位的操作,并不影響另外對(duì)應(yīng)8位的數(shù)據(jù)數(shù)據(jù)寄存器數(shù)據(jù)寄存器用來(lái)存放計(jì)算的結(jié)果和操作數(shù),也可以存放地址每個(gè)寄存器又有它們各自的專用目的AX--累加器,使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等;BX--基址寄存器,常用做存放存儲(chǔ)器地址CX--計(jì)數(shù)器,作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器;DX--數(shù)據(jù)寄存器,常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址。變址寄存器變址寄存器常用于存儲(chǔ)器尋址時(shí)提供地址SI是源變址寄存器DI是目的變址寄存器串操作類指令中,SI和DI具有特別的功能指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器,指示棧頂?shù)钠频刂稴P不能再用于其他目的,具有專用目的BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址指令指針I(yè)P指令指針寄存器IP,指示代碼段中指令的偏移地址它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址計(jì)算機(jī)通過(guò)CS:IP寄存器來(lái)控制指令序列的執(zhí)行流程IP寄存器是一個(gè)專用寄存器3.標(biāo)志寄存器標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式8088/8086處理器的各種標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器FLAGS(程序狀態(tài)字PSW寄存器)OF111512DF10IF9TF8SF7ZF65AF43PF21CF0

程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)標(biāo)志的分類狀態(tài)標(biāo)志--用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CFZFSFPFOFAF控制標(biāo)志--可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式DFIFTF進(jìn)位標(biāo)志CF(CarryFlag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;否則CF=0。3AH+7CH=B6H,沒(méi)有進(jìn)位:CF=0AAH+7CH=(1)26H,有進(jìn)位:CF=1零標(biāo)志ZF(ZeroFlag)若運(yùn)算結(jié)果為0,則ZF=1;否則ZF=03AH+7CH=B6H,結(jié)果不是零:ZF=084H+7CH=(1)00H,結(jié)果是零:ZF=1

注意:ZF為1表示的結(jié)果是0符號(hào)標(biāo)志SF(SignFlag)運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0

有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)奇偶標(biāo)志PF(ParityFlag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=03AH+7CH=B6H=10110110B結(jié)果中有5個(gè)1,是奇數(shù):PF=0

PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是

偶或奇,即使是進(jìn)行16位字操作溢出標(biāo)志OF(OverflowFlag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=03AH+7CH=B6H,產(chǎn)生溢出:OF=1AAH+7CH=(1)26H,沒(méi)有溢出:OF=0溢出標(biāo)志OF(OverflowFlag)問(wèn)題什么是溢出?溢出和進(jìn)位有什么區(qū)別?處理器怎么處理,程序員如何運(yùn)用?如何判斷是否溢出?什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:+127~-12816位表達(dá)的范圍是:+32767~-32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH+7CH=B6H,就是58+124=182,已經(jīng)超出-128~+127范圍,產(chǎn)生溢出,故OF=1;另一方面,補(bǔ)碼B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確溢出和進(jìn)位溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同的標(biāo)志進(jìn)位標(biāo)志表示無(wú)符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確;溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確。請(qǐng)看例子溢出和進(jìn)位的對(duì)比例1:3AH+7CH=B6H無(wú)符號(hào)數(shù)運(yùn)算: 58+124=182 范圍內(nèi),無(wú)進(jìn)位有符號(hào)數(shù)運(yùn)算: 58+124=182 范圍外,有溢出例2:AAH+7CH=(1)26H無(wú)符號(hào)數(shù)運(yùn)算: 170+124=294 范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算: -86+124=28 范圍內(nèi),無(wú)溢出如何運(yùn)用溢出和進(jìn)位處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無(wú)符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志OF。應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來(lái)決定。也就是說(shuō),如果將參加運(yùn)算的操作數(shù)認(rèn)為是無(wú)符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出。溢出的判斷判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡(jiǎn)單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)?,此時(shí)的運(yùn)算結(jié)果顯然不正確其他情況下,則不會(huì)產(chǎn)生溢出輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag)3AH+7CH=B6H,D3有進(jìn)位:AF=1運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0。

這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心方向標(biāo)志DF(DirectionFlag)用于串操作指令中,控制地址的變化方向:設(shè)置DF=0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF=1,存儲(chǔ)器地址自動(dòng)減少。CLD指令復(fù)位方向標(biāo)志:DF=0STD指令置位方向標(biāo)志:DF=1中斷允許標(biāo)志IF(Interrupt-enableFlag)用于控制外部可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF=1,則允許中斷;設(shè)置IF=0,則禁止中斷。CLI指令復(fù)位中斷標(biāo)志:IF=0STI指令置位中斷標(biāo)志:IF=1陷阱標(biāo)志TF(TrapFlag)用于控制處理器進(jìn)入單步操作方式:設(shè)置TF=0,處理器正常工作;設(shè)置TF=1,處理器單步執(zhí)行指令。單步執(zhí)行指令——處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試(1)存儲(chǔ)器地址空間(8086)220=1MB,地址由00000-FFFFF(H)編碼若存放的信息是字節(jié),則按順序存放若存放的信息是字,則將字的低位字節(jié)

存放在低地址,高位字節(jié)存放在高地址若存放的信息是雙字,則將雙字的低位字存放在低地址,高位字存放在高地址2.2.4存儲(chǔ)器組織

存儲(chǔ)器的分段管理8086CPU有20條地址線最大可尋址空間為220=1MB物理地址范圍從00000H~FFFFFH8086CPU將1MB空間分成許多邏輯段(Segment)每個(gè)段最大限制為64KB物理地址采用邏輯地址,形式為段基地址:段內(nèi)偏移地址分隔符物理地址將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址一個(gè)物理地址可以有多個(gè)邏輯地址例:DS=1460H,偏移地址為0100H,則物理地址=? 14600H+100H14700H段地址左移4位加上偏移地址得到物理地址存儲(chǔ)器的分段8086對(duì)邏輯段要求:段地址低4位均為0每段最大不超過(guò)64KB8086對(duì)邏輯段并不要求:必須是64KB各段之間完全分開(kāi)(即可以重疊)各段獨(dú)立各段重疊各個(gè)邏輯段獨(dú)立各個(gè)邏輯段重疊2.段寄存器有4個(gè)16位段寄存器CS(代碼段)指明代碼段的起始地址SS(堆棧段)指明堆棧段的起始地址DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址ES(附加段)指明附加段的起始地址每個(gè)段寄存器用來(lái)確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途代碼段(CodeSegment)代碼段用來(lái)存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令堆棧段(StackSegment)堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)數(shù)據(jù)段(DataSegment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)附加段(ExtraSegment)附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存:附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域如何分配各個(gè)邏輯段程序使用的堆棧一定在堆棧段程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中演示邏輯段分配段超越前綴指令沒(méi)有指明時(shí),一般的數(shù)據(jù)訪問(wèn)在DS段;使用BP訪問(wèn)主存,則在SS段默認(rèn)的情況允許改變,需要使用段超越前綴指令;指令系統(tǒng)中有4個(gè):CS: ;代碼段超越,使用代碼段的數(shù)據(jù)SS: ;堆棧段超越,使用堆棧段的數(shù)據(jù)DS: ;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)ES: ;附加段超越,使用附加段的數(shù)據(jù)示例段超越的示例沒(méi)有段超越的指令實(shí)例:MOVAX,[2000H] ;AX←DS:[2000H];從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實(shí)例:MOVAX,ES:[2000H] ;AX←ES:[2000H];從指定的ES附加段取出數(shù)據(jù)總結(jié)段寄存器的使用規(guī)定訪問(wèn)存儲(chǔ)器的方式默認(rèn)可超越偏移地址取指令CS無(wú)IP堆棧操作SS無(wú)SP一般數(shù)據(jù)訪問(wèn)DSCSESSS有效地址EABP基址的尋址方式SSCSESDS有效地址EA串操作的源操作數(shù)DSCSESSSSI串操作的目的操作數(shù)ES無(wú)DI2.2.58086處理器時(shí)序時(shí)序(Timing)是指信號(hào)高低電平(有效或無(wú)效)變化及相互間的時(shí)間順序關(guān)系。總線時(shí)序描述CPU引腳如何實(shí)現(xiàn)總線操作CPU時(shí)序決定系統(tǒng)各部件間的同步和定時(shí)什么是總線操作?8088/8086的總線時(shí)序(續(xù)1)總線操作是指CPU通過(guò)總線對(duì)外的各種操作總線操作主要有:存儲(chǔ)器讀、I/O讀操作存儲(chǔ)器寫、I/O寫操作中斷響應(yīng)操作總線請(qǐng)求及響應(yīng)操作CPU正在進(jìn)行內(nèi)部操作、并不進(jìn)行實(shí)際對(duì)外操作的空閑狀態(tài)Ti描述總線操作的微處理器時(shí)序有三級(jí):指令周期→總線周期→時(shí)鐘周期什么是指令、總線和時(shí)鐘周期?8088/8086的總線時(shí)序(續(xù)2)指令周期是指一條指令經(jīng)取指、譯碼、讀寫操作數(shù)到執(zhí)行完成的過(guò)程。若干總線周期組成一個(gè)指令周期總線周期是指CPU通過(guò)總線操作與外部(存儲(chǔ)器或I/O端口)進(jìn)行一次數(shù)據(jù)交換的過(guò)程基本總線周期需要4個(gè)時(shí)鐘周期4個(gè)時(shí)鐘周期編號(hào)為T1、T2、T3和T4總線周期中的時(shí)鐘周期也被稱作“T狀態(tài)”時(shí)鐘周期的時(shí)間長(zhǎng)度就是時(shí)鐘頻率的倒數(shù)當(dāng)需要延長(zhǎng)總線周期時(shí)需要插入等待狀態(tài)Tw何時(shí)有總線周期?演示總線周期T1T2T3T4TiTi

T1T2T3TwTwTwT4TiTi

總線周期總線周期若干個(gè)1~2個(gè)基本總線周期由4個(gè)T狀態(tài)組成:T1、T2、T3、T4等待時(shí)鐘周期Tw,在總線周期的T3和T4之間插入空閑時(shí)鐘周期Ti,在兩個(gè)總線周期之間插入動(dòng)態(tài)各種周期的動(dòng)態(tài)演示8088/8086的總線時(shí)序(續(xù)3)任何指令的取指階段都需要存儲(chǔ)器讀總線周期,讀取的內(nèi)容是指令代碼任何一條以存儲(chǔ)單元為源操作數(shù)的指令都將引起存儲(chǔ)器讀總線周期,任何一條以存儲(chǔ)單元為目的操作數(shù)的指令都將引起存儲(chǔ)器寫總線周期只有執(zhí)行IN指令才出現(xiàn)I/O讀總線周期,執(zhí)行OUT指令才出現(xiàn)I/O寫總線周期CPU響應(yīng)可屏蔽中斷時(shí)生成中斷響應(yīng)總線周期如何實(shí)現(xiàn)同步?8088/8086的總線時(shí)序(續(xù)4)總線操作中如何實(shí)現(xiàn)時(shí)序同步是關(guān)鍵CPU總線周期采用同步時(shí)序:各部件都以系統(tǒng)時(shí)鐘信號(hào)為基準(zhǔn)當(dāng)相互不能配合時(shí),快速部件(CPU)插入等待狀態(tài)等待慢速部件(I/O和存儲(chǔ)器)CPU與外設(shè)接口常采用異步時(shí)序,它們通過(guò)應(yīng)答聯(lián)絡(luò)信號(hào)實(shí)現(xiàn)同步操作等待狀態(tài)Tw的插入1最小模式的總線時(shí)序本節(jié)展開(kāi)微處理器最基本的4種總線周期存儲(chǔ)器讀總線周期存儲(chǔ)器寫總線周期I/O讀總線周期I/O寫總線周期存儲(chǔ)器寫總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸出數(shù)據(jù)A19~A16S6~S3READY(高電平)IO/M*WR*T1狀態(tài)——輸出20位存儲(chǔ)器地址A19~A0IO/M*輸出低電平,表示存儲(chǔ)器操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)WR*和數(shù)據(jù)D7~D0T3和Tw狀態(tài)——檢測(cè)數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——完成數(shù)據(jù)傳送I/O寫總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸出數(shù)據(jù)0000S6~S3READY(高電平)IO/M*WR*T1狀態(tài)——輸出16位I/O地址A15~A0IO/M*輸出高電平,表示I/O操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)WR*和數(shù)據(jù)D7~D0T3和Tw狀態(tài)——檢測(cè)數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——完成數(shù)據(jù)傳送存儲(chǔ)器讀總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸入數(shù)據(jù)A19~A16S6~S3READY(高電平)IO/M*RD*T1狀態(tài)——輸出20位存儲(chǔ)器地址A19~A0IO/M*輸出低電平,表示存儲(chǔ)器操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)RD*T3和Tw狀態(tài)——檢測(cè)數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——前沿讀取數(shù)據(jù),完成數(shù)據(jù)傳送演示存儲(chǔ)器讀[20002H]=35HI/O讀總線周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0輸入數(shù)據(jù)S6~S3READY(高電平)IO/M*RD*0000T1狀態(tài)——輸出16位I/O地址A15~A0IO/M*輸出高電平,表示I/O操作;ALE輸出正脈沖,表示復(fù)用總線輸出地址T2狀態(tài)——輸出控制信號(hào)RD*T3和Tw狀態(tài)——檢測(cè)數(shù)據(jù)傳送是否能夠完成T4狀態(tài)——前沿讀取數(shù)據(jù),完成數(shù)據(jù)傳送插入等待狀態(tài)Tw同步時(shí)序通過(guò)插入等待狀態(tài),來(lái)使速度差別較大的兩部分保持同步在讀寫總線周期中,判斷是否插入Tw1.在T3的前沿檢測(cè)READY引腳是否有效2.如果READY無(wú)效,在T3和T4之間插入一個(gè)等效于T3的Tw,轉(zhuǎn)13.如果READY有效,執(zhí)行完該T狀態(tài),進(jìn)入T4狀態(tài)演示等待狀態(tài)T1T2T3TwTwTwT4CLKREADY前沿檢測(cè)動(dòng)態(tài)2最大組態(tài)的寫總線時(shí)序111110T4T3T2T1A15~A8A19~A16S6~S3由8288產(chǎn)生ALES2*~S0*CLKA19/S6~A16/S3A15~A8DEN寫命令A(yù)D7~AD0A7~A0輸出數(shù)據(jù)DT/R*AMWTC*MWTC*3最大組態(tài)的讀總線時(shí)序111101A15~A8A19~A16S6~S3ALES2*~S0*CLKA19/S6~A16/S3A15~A8DEN由8288產(chǎn)生輸入數(shù)據(jù)A7~A0AD7~AD0T4T3T2T1DT/R*MRDC*基本控制信號(hào)的組合方法I/O讀I/O寫存儲(chǔ)器讀存儲(chǔ)器寫1092.5總線

(P70)110主要內(nèi)容:總線的基本概念和分類;總線的工作方式;常用系統(tǒng)總線標(biāo)準(zhǔn)。1111.概述總線:

是一組導(dǎo)線和相關(guān)的控制、驅(qū)動(dòng)電路的集合。是計(jì)算機(jī)系統(tǒng)各部件之間傳輸?shù)刂贰?shù)據(jù)和控制信息的通道。地址總線(AB)數(shù)據(jù)總線(DB)控制總線(CB)1122.總線分類CPU總線系統(tǒng)總線外部總線片內(nèi)總線片外總線按相對(duì)CPU的位置分按層次結(jié)構(gòu)分1133.總線的系統(tǒng)結(jié)構(gòu)單總線結(jié)構(gòu)CPUMMI/OI/OI/O114多總線結(jié)構(gòu)面向CPU的雙總線結(jié)構(gòu)面向主存的雙總線結(jié)構(gòu)雙總線結(jié)構(gòu)多總線結(jié)構(gòu)115面向CPU的雙總線結(jié)構(gòu)存儲(chǔ)器與I/O接口間無(wú)直接通道CPUMI/OI/OI/O116面向存儲(chǔ)器的雙總線結(jié)構(gòu)在單總線結(jié)構(gòu)基礎(chǔ)上增加一條CPU到存儲(chǔ)器的高速總線CPUMI/OI/OI/O117現(xiàn)代微機(jī)中的多總線結(jié)構(gòu)1184.總線的基本功能數(shù)據(jù)傳送仲裁控制出錯(cuò)處理總線驅(qū)動(dòng)1195.常用系統(tǒng)總線ISA(8/16位)PCI(32/64位)AGP(加速圖形端口,用于提高圖形處理能力)PCI-E(PCIExpress)目前最新的系統(tǒng)總線標(biāo)準(zhǔn),采用串行方式傳輸數(shù)據(jù),依靠高頻率來(lái)獲得高性能。1206.總線的主要性能指標(biāo)總線帶寬(B/S):?jiǎn)挝粫r(shí)間內(nèi)總線上可傳送的數(shù)據(jù)量總線位寬(bit):能同時(shí)傳送的數(shù)據(jù)位數(shù)總線的工作頻率(MHz)總線帶寬=(位寬/8)(工作頻率/每個(gè)存取周期的時(shí)鐘數(shù))121七、8088系統(tǒng)總線

(P87)1227.兩種工作模式下的總線連接8088可工作于兩種模式下最小模式為單處理器模式,控制信號(hào)較少,一般可不必接總線控制器。最大模式為多處理器模式,控制信號(hào)較多,須通過(guò)總線控制器與總線相連。補(bǔ)充:三態(tài)門和D觸發(fā)器三態(tài)門和以D觸發(fā)器形成的鎖存器是微機(jī)接口電路中最常使用的兩類邏輯電路三態(tài)門:功率放大、導(dǎo)通開(kāi)關(guān)器件共用總線時(shí),一般使用三態(tài)電路:需要使用總線的時(shí)候打開(kāi)三態(tài)門;不使用的時(shí)候關(guān)閉三態(tài)門,使之處于高阻D觸發(fā)器:信號(hào)保持,也可用作導(dǎo)通開(kāi)關(guān)三態(tài)鎖存三態(tài)緩沖器(三態(tài)門)具有單向?qū)ê腿龖B(tài)的特性T為低平時(shí):輸出為高阻抗(三態(tài))T為高電平時(shí):輸出為輸入的反相TAF表示反相或低電平有效TAFTAFTAF74LS244雙4位單向緩沖器分成4位的兩組每組的控制端連接在一起控制端低電平有效輸出與輸入同相每一位都是一個(gè)三態(tài)門,每4個(gè)三態(tài)門的控制端連接在一起雙向三態(tài)緩沖器具有雙向?qū)ê腿龖B(tài)的特性ABTOE*OE*=0,導(dǎo)通T=1A→BT=0A←BOE*=1,不導(dǎo)通Intel82868位雙向緩沖器控制端連接在一起,低電平有效可以雙向?qū)?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論