第2章 8086微處理器(大連理工)_第1頁(yè)
第2章 8086微處理器(大連理工)_第2頁(yè)
第2章 8086微處理器(大連理工)_第3頁(yè)
第2章 8086微處理器(大連理工)_第4頁(yè)
第2章 8086微處理器(大連理工)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

8086微處理器第二章8086微處理器指令執(zhí)行過(guò)程指令的執(zhí)行過(guò)程取指令

指令譯碼

指令執(zhí)行

微型計(jì)算機(jī)的工作過(guò)程,也就是不斷地取指令、譯碼和執(zhí)行的過(guò)程,直到遇到停機(jī)指令時(shí)才結(jié)束機(jī)器的運(yùn)行。第2.1節(jié)INTEL8086內(nèi)部結(jié)構(gòu)

8086的基本特征8086CPU是1978年推出,第一代超大規(guī)模集成電路(VLSI)微處理器,采用NMOS工藝制造,內(nèi)含2.9萬(wàn)晶體管。采用40引腳DIP封裝。數(shù)據(jù)總線(xiàn)寬度16位,地址總線(xiàn)寬度20位;可直接尋址空間220=1M字節(jié)單元;16位數(shù)據(jù)總線(xiàn)與地址總線(xiàn)復(fù)用。采用單一的+5V電源,一相時(shí)鐘,時(shí)鐘頻率為5MHz(8086),10MHz(8086-1),8MHz(8086-2)。133條指令,指令長(zhǎng)度1~6字節(jié),指令最短執(zhí)行時(shí)間為0.4us(平均0.5us)。8086微處理器內(nèi)部結(jié)構(gòu)8086微處理器內(nèi)部結(jié)構(gòu)

8086微處理器內(nèi)部分為執(zhí)行單元和總線(xiàn)接口單元兩部分。執(zhí)行單元(EU-ExecutionUnit):負(fù)責(zé)指令的譯碼和執(zhí)行總線(xiàn)接口單元(BIU-BusInterfaceUnit):與系統(tǒng)總線(xiàn)連接,實(shí)現(xiàn)與存儲(chǔ)器、I/O口之間的數(shù)據(jù)傳送AHALBHBLCHCLDHDLAXBXCXDXSPBPSIDIFLAGALU123456暫存器CSDSSSES總線(xiàn)控制邏輯EU控制暫存器指令隊(duì)列(EU)執(zhí)行單元(BIU)總線(xiàn)接口單元IP總線(xiàn)接口單元BIU(一)總線(xiàn)接口單元(BIU)4個(gè)16位段地址寄存器CS(CodeSegment)—

代碼段寄存器DS(DataSegment)—

數(shù)據(jù)段寄存器SS(StackSegment)—

堆棧段寄存器ES(ExtraSegment)—

擴(kuò)展段寄存器

8086對(duì)存儲(chǔ)器采用分段管理,4個(gè)段寄存器分別用于存放4個(gè)當(dāng)前段的起始地址,又稱(chēng)作段基址寄存器。16位指令指針寄存器IP(InstructionPointer)

IP始終指向當(dāng)前代碼段(CS)所要取出的下一條指令的地址。每取出一個(gè)字節(jié)指令后,IP自動(dòng)加1。可以用轉(zhuǎn)移指令、調(diào)用指令及中斷和復(fù)位等改變IP值??偩€(xiàn)接口單元BIU形成20位物理地址的加法器∑段地址左移4位+段內(nèi)偏移量—〉20位實(shí)際物理地址段地址*16+段內(nèi)偏移量—〉20位實(shí)際物理地址例:CS的內(nèi)容是CFFFH,IP的內(nèi)容是1234H,則加法器生成的實(shí)際物理地址是CFFF0+01234=D1224H6個(gè)字節(jié)的指令隊(duì)列(ISQ)

與EU通信的內(nèi)部寄存器總線(xiàn)控制邏輯執(zhí)行單元(二)執(zhí)行單元(EU)16位算術(shù)邏輯單元ALU

完成算術(shù)和邏輯運(yùn)算4個(gè)16位數(shù)據(jù)寄存器

AX、BX、CX、DX,又可以分為8個(gè)8位寄存器使用AH、AL、BH、BL、CH、CL、DH、DL

數(shù)據(jù)寄存器用于存放操作數(shù)及中間結(jié)果,AX和AL可用作累加操作,因此又可稱(chēng)作累加器。4個(gè)16位地址指針寄存器SP(StackPointer)—

堆棧指針寄存器BP(BasePointer)—

基址指針寄存器SI(SourceIndex)—

源變址寄存器DI(DestinationIndex)—

目的變址寄存器地址指針寄存器用于存放操作數(shù)的地址,編程時(shí)通過(guò)修改寄存器的內(nèi)容達(dá)到修改地址的目的。寄存器使用特殊說(shuō)明寄存器使用特殊說(shuō)明:SP—總是指示堆棧段中的棧頂位置,專(zhuān)門(mén)用于數(shù)據(jù)進(jìn)棧和出棧的位置指示,只能與SS配對(duì)使用。BP—

指示堆棧段中一個(gè)數(shù)據(jù)區(qū)的基址位置,通常與SS配對(duì)使用。SI—

在串操作時(shí)用作指示源串地址。DI—

在串操作時(shí)用作指示目標(biāo)串地址。

*************************************************BX—

既可用作數(shù)據(jù)寄存器,也可用作基址指針寄存器,此時(shí)通常與DS配對(duì)使用。SP、BP、SI、DI既可指示地址,也可以用作數(shù)據(jù)寄存器,存放操作數(shù)及中間結(jié)果。執(zhí)行單元16位數(shù)據(jù)暫存器EU控制電路16位狀態(tài)標(biāo)志寄存器FLAG

6個(gè)狀態(tài)標(biāo)志,3個(gè)控制標(biāo)志IF、DF、TF,剩下7位保留狀態(tài)標(biāo)志:CF—

進(jìn)(借)位標(biāo)志,若運(yùn)算結(jié)果最高位產(chǎn)生進(jìn)位或借位則CF置“1”,否則置“0”AF—

輔助進(jìn)位標(biāo)志,若低字節(jié)的第4位向上產(chǎn)生一個(gè)進(jìn)位或借位,則AF置“1”,否則置“0”標(biāo)志寄存器ZF—

零標(biāo)志位,若運(yùn)算結(jié)果為零,則ZF置“1”,否則置“0”SF—符號(hào)標(biāo)志位,若算數(shù)運(yùn)算的結(jié)果為負(fù),SF置“1”,

否則置“0”O(jiān)F—溢出標(biāo)志位,有符號(hào)數(shù)算術(shù)運(yùn)算結(jié)果產(chǎn)生溢出,OF

置“1”,否則置“0”P(pán)F—奇偶標(biāo)志位,邏輯運(yùn)算中低8位所含1的個(gè)數(shù)為偶

數(shù)則PF置“1”,否則置“0”控制標(biāo)志:DF—方向標(biāo)志位DF=1串操作指令以遞減順序處理數(shù)據(jù)串DF=0串操作指令以遞增順序處理數(shù)據(jù)串標(biāo)志寄存器IF—

中斷允許標(biāo)志IF=1CPU允許接收外部可屏蔽中斷請(qǐng)求,即開(kāi)中斷IF=0關(guān)中斷TF—

跟蹤標(biāo)志位TF=1處理器處于單步工作方式時(shí),每執(zhí)行完一條指令

產(chǎn)生一個(gè)軟件中斷TF=0正常工作狀態(tài)標(biāo)志寄存器舉例:

0101010000111001+01000101011010101001100110100011

運(yùn)算后CF=0PF=1OF=1OF=CsCp=1AF=1ZF=0SF=1BIU和EU的功能(三)總線(xiàn)接口部件(BIU)和執(zhí)行部件(EU)的功能指令隊(duì)列中出現(xiàn)兩個(gè)字節(jié)為空時(shí)自動(dòng)按CS值和IP值組成20位實(shí)際物理地址到存儲(chǔ)器中取指令,一次取兩個(gè)字節(jié)指令存放到指令隊(duì)列中EU從BIU指令隊(duì)列中讀取指令由EU控制電路對(duì)指令進(jìn)行譯碼分析,指出操作性質(zhì)及操作對(duì)象EU執(zhí)行指令,如果執(zhí)行指令時(shí)必需訪(fǎng)問(wèn)存儲(chǔ)器或者I/O端口,則在EU中計(jì)算出操作數(shù)的16位地址偏移量送給BIU,由BIU的∑形成20位絕對(duì)地址BIU根據(jù)EU請(qǐng)求,將操作數(shù)的20位物理地址傳遞給存儲(chǔ)器BIU取來(lái)操作數(shù)經(jīng)總線(xiàn)控制邏輯傳送到內(nèi)部EU數(shù)據(jù)總線(xiàn)EU將取來(lái)的操作數(shù)從內(nèi)部總線(xiàn)送入ALU,進(jìn)行指令指定的操作EU運(yùn)算出的結(jié)果,經(jīng)內(nèi)部總線(xiàn)送到指定的位置,若需要傳送給存儲(chǔ)器,則由EU請(qǐng)求BIU產(chǎn)生20位實(shí)際目標(biāo)地址,將結(jié)果寫(xiě)入存儲(chǔ)器存儲(chǔ)器和I/O管理(四)存儲(chǔ)器和I/O管理

Intel8086為標(biāo)準(zhǔn)的16位微處理器,20根地址總線(xiàn)管理1MB的存儲(chǔ)空間,用低16根地址總線(xiàn)來(lái)管理64K的I/O端口地址。存儲(chǔ)器的分段管理,由于8086內(nèi)部寄存器和ALU均是16位,為了方便20位地址管理,在8086對(duì)存儲(chǔ)器的管理設(shè)計(jì)中,采用了分段管理技術(shù)。分段管理技術(shù)

8086把1MB的存儲(chǔ)器按照使用需要分成若干段,每段的大小不超過(guò)64K(2^16),把每段起始位置的20位實(shí)際物理地址中的高16位稱(chēng)為段地址(段基址),每段中某個(gè)存儲(chǔ)單元距段起始位置的偏移量稱(chēng)為偏移地址。段地址和偏移地址合稱(chēng)為邏輯地址。數(shù)據(jù)段段基址(DS)數(shù)據(jù)段內(nèi)偏移地址擴(kuò)展段段基址(ES)堆棧段段基址(SS)代碼段段基址(CS)每段地址空間最大64K數(shù)據(jù)段擴(kuò)展段堆棧段代碼段邏輯地址與物理地址邏輯地址與實(shí)際物理地址對(duì)存儲(chǔ)器中任一位置的訪(fǎng)問(wèn)都是在該位置所屬段的段基址下進(jìn)行的:

邏輯地址形式為

段基址:段內(nèi)偏移

(物理地址)20=(段基址)*16

+(段內(nèi)偏移)(物理地址)20=段基址左移4位+

段內(nèi)偏移同一個(gè)實(shí)際物理地址可以采取不同的邏輯地址形式表示,即不同段可以相互重疊或重合,但段內(nèi)地址連續(xù)。例1.設(shè)(CS)=4232H,(IP)=66HI/O端口地址管理I/O端口地址管理

計(jì)算機(jī)“端口”是英文port的義譯,可以認(rèn)為是計(jì)算機(jī)與外界通訊交流的出口。其中硬件領(lǐng)域的端口又稱(chēng)接口。

8086對(duì)I/O端口操作,需要專(zhuān)門(mén)的IN、OUT指令,并且只能通過(guò)累加器(AX/AL)來(lái)完成。

8086CPU的I/O端口尋址采用16位地址線(xiàn),用16位數(shù)據(jù)線(xiàn)傳送數(shù)據(jù),尋址64KB地址空間.8086CPU的I/O端口的地址范圍是0000–0FFFFH段超越(五)段超越

段寄存器(CS、DS、ES、SS)與地址指針寄存器(SP、BP、SI、DI)默認(rèn)是隱含配對(duì)使用,但也允許段超越。8086引腳信號(hào)和工作模式第2.2節(jié)8086引腳信號(hào)和工作模式8086引腳信號(hào)和功能20根AB/16根DB分時(shí)復(fù)用;先傳地址,后傳數(shù)據(jù)兩種工作模式,由引腳決定最小模式:系統(tǒng)中只有一個(gè)處理器;為高電平最大模式:系統(tǒng)中包括兩個(gè)或多個(gè)處理器;為低電平不同模式下,部分引腳定義不同MN/MXMN/MXMN/MX8086引腳圖(一)8086引腳圖8086CPU為40引腳雙列直插(DIP)封裝

8086引腳分類(lèi)圖最小模式引腳信號(hào)(二)最小模式下引腳信號(hào)和功能AD0~AD15:地址數(shù)據(jù)復(fù)用總線(xiàn)雙向,三態(tài),高電平有效。分時(shí)傳送16位數(shù)據(jù)和地址的低16位。由ALE鎖存地址信息。A16/S3~A19/S6:地址狀態(tài)復(fù)用引腳輸出,三態(tài),高電平有效。分時(shí)輸出地址的高4位或CPU當(dāng)前狀態(tài)。地址信息由ALE鎖存。BHE/S7:

高8位數(shù)據(jù)總線(xiàn)允許/狀態(tài)復(fù)用引腳輸出,三態(tài),低電平有效。BHE為低電平表示高8位數(shù)據(jù)線(xiàn)D15~D8上數(shù)據(jù)有效,BHE由ALE鎖存。BHE和A0可用于分別選中奇偶地址,并控制讀/寫(xiě)一個(gè)字或者字節(jié)。引腳信號(hào)和功能ALE:地址鎖存允許信號(hào)輸出、高電平有效。表示總線(xiàn)上的信息是地址信息。M/IO:存儲(chǔ)器/輸入輸出口控制信號(hào)輸出,三態(tài)。高電平表示當(dāng)前的信息是存儲(chǔ)器地址信息;低電平表示當(dāng)前的信息是I/O口地址信息。RD:讀信號(hào)輸出,三態(tài),低電平有效。表示CPU正在從存儲(chǔ)器或I/O口讀入信息。WR:寫(xiě)信號(hào)輸出,三態(tài),低電平有效。表示CPU正向存儲(chǔ)器或I/O口輸出數(shù)據(jù)。引腳信號(hào)和功能DT/R:數(shù)據(jù)收發(fā)信號(hào)輸出,三態(tài),高電平表示CPU正在發(fā)送數(shù)據(jù);低電平表示CPU接收數(shù)據(jù)DEN:數(shù)據(jù)允許信號(hào)輸出,三態(tài),低電平有效。表示CPU正在進(jìn)行數(shù)據(jù)收發(fā)操作INTR:可屏蔽中斷請(qǐng)求信號(hào)輸入,高電平有效。表示外部向CPU提出中斷申請(qǐng)。INTA:中斷響應(yīng)信號(hào)輸出,低電平有效。表示外設(shè)的中斷申請(qǐng)得到響應(yīng)。NMI:非屏蔽中斷申請(qǐng)信號(hào)輸入,上升沿有效。表示外部有非屏蔽中斷申請(qǐng)。非屏蔽中斷不受軟件控制,CPU必須響應(yīng)。引腳信號(hào)和功能HOLD:總線(xiàn)保持請(qǐng)求信號(hào)輸入,高電平有效。表示其他模塊(如DMAC)申請(qǐng)占用總線(xiàn)HLDA:總線(xiàn)保持響應(yīng)信號(hào)輸出,高電平有效。表示CPU已讓出總線(xiàn)。READY:準(zhǔn)備好信號(hào)

輸入,高電平有效。高電平表示存儲(chǔ)器或I/O口已準(zhǔn)備好接收數(shù)據(jù),外部使READY為低電平CPU要插入等待周期。TEST:測(cè)試信號(hào)輸入,低電平有效。有效時(shí)CPU退出WAIT指令。引腳信號(hào)和功能RESET:復(fù)位信號(hào)輸入,高電平有效,至少保持4個(gè)時(shí)鐘周期的高電平。復(fù)位時(shí)CPU停止現(xiàn)行操作,并開(kāi)始進(jìn)行初始化:

標(biāo)志寄存器FLAG,IP,DS,SS,ES及指令隊(duì)列均清零;

CS設(shè)置為FFFFH,復(fù)位結(jié)束時(shí)CPU從FFFF0H開(kāi)始執(zhí)行程序CLK:時(shí)鐘信號(hào)

8086 4.77MHZT=210ns;單相,占空比為1/3。VCC,GND:電源及地單+5V,滿(mǎn)足TTL規(guī)范最大模式引腳信號(hào)(三)最大模式下引腳信號(hào)和功能最大模式下8086有8個(gè)控制信號(hào)被重新定義,此時(shí)系統(tǒng)中可接入?yún)f(xié)處理器8087或8089。S2,S1,S0:總線(xiàn)周期狀態(tài)信號(hào)輸出,三個(gè)信號(hào)組合產(chǎn)生系統(tǒng)控制信號(hào),由總線(xiàn)控制器8288譯碼。最大模式引腳信號(hào)LOCK:總線(xiàn)封鎖信號(hào)

三態(tài),輸出,低電平有效。有效時(shí)禁止其他部件占用總線(xiàn)。RQ0/GT0,RQ1/GT1:總線(xiàn)請(qǐng)求/允許信號(hào)

雙向,低電平有效。有兩個(gè)總線(xiàn)請(qǐng)求與總線(xiàn)響應(yīng)信號(hào),支持多處理器工作。QS1,QS0:指令隊(duì)列狀態(tài)信號(hào)輸出,兩個(gè)信號(hào)組合指示指令隊(duì)列狀態(tài)。最小和最大模式引腳對(duì)比最小和最大模式下不同定義引腳對(duì)比最小模式 最大模式HOLD RQ0/GT0HLDA RQ1/GT1WR LOCKM/IO S2DT/R S1DEN S0ALE QS0INTA QS18086與8088的區(qū)別8086與8088在引腳上的區(qū)別

8086微處理器8088微處理器

16位AB復(fù)用8位AB復(fù)用

BHE高八位數(shù)據(jù)允許SS0/高電平

M/IO引腳選擇存儲(chǔ)器/IO口M/IO引腳選擇存儲(chǔ)器/IO口最小模式下系統(tǒng)總線(xiàn)連接系統(tǒng)總線(xiàn)(一)最小模式下系統(tǒng)總線(xiàn)最小模式下的系統(tǒng)總線(xiàn)連接Intel8282和Intel8286最小模式系統(tǒng)總線(xiàn)連接說(shuō)明Intel8282

把AD復(fù)用引腳連接到地址總線(xiàn)上的8位地址鎖存器。在最小系統(tǒng)中,由3片8282(低電平鎖存,功能同

74LS373)鎖存地址A0~A19和BHE。ALE為鎖存信號(hào)。Intel8286

把AD復(fù)用引腳連接到數(shù)據(jù)總線(xiàn)上的8位數(shù)據(jù)緩沖器。在最小系統(tǒng)中,由2片8286(雙向緩沖器,功能同74LS245)做數(shù)據(jù)總線(xiàn)D15~D0的緩沖器,DT/R做方向選擇,DEN為選通信號(hào)。讀/寫(xiě)控制控制信號(hào)M/IO、RD和WR完成信息傳遞控制。組合起來(lái)完成右面的控制。

有時(shí)也作以下處理中斷申請(qǐng)和總線(xiàn)保持信號(hào)中斷控制信號(hào)INTR、INTA、NMIINTR:外部可屏蔽中斷請(qǐng)求引腳,高電平有效INTA:中斷響應(yīng)信號(hào),低電平有效NMI:不可屏蔽中斷請(qǐng)求引腳,上升沿有效總線(xiàn)控制信號(hào)HOLD、HLDAHOLD:總線(xiàn)保持請(qǐng)求引腳,高電平有效HLDA:總線(xiàn)保持響應(yīng)引腳,高電平有效HLDA控制8282的OE,當(dāng)CPU總線(xiàn)保持響應(yīng)時(shí)讓出總線(xiàn)最大模式下系統(tǒng)總線(xiàn)連接(二)最大模式下系統(tǒng)總線(xiàn)最大模式下系統(tǒng)總線(xiàn)的連接ALEBHEA19~A16BHEA15~A0STBSTBDIROEOEOE82828282(2)8286地址總線(xiàn)數(shù)據(jù)總線(xiàn)(2)DT/RDENMRDCMWTCIORCIOWCINTAINTAMEMRMEMWIORIOWS0S1S2S0S1S28288INTRNMIINTRNMI8086AEN_8237AEN_8237A19~A16D15~D0MN/MXA15~A0總線(xiàn)控制器8288總線(xiàn)控制器8288

8288根據(jù)8086CPU在最大模式的狀態(tài)信號(hào)S2、S1、S0建立控制時(shí)序。8288引腳圖8288內(nèi)部功能框圖8288內(nèi)部功能框圖

8288共有2組輸入信號(hào)和2組輸出信號(hào)。8288引腳信號(hào)8288引腳信號(hào)說(shuō)明狀態(tài)輸入信號(hào):S2、S1、S0用于接收CPU的狀態(tài)信息。控制輸入信號(hào):CLK:系統(tǒng)時(shí)鐘輸入引腳,使得8

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論