單片機(jī)課件微機(jī)原理8086與pc_第1頁
單片機(jī)課件微機(jī)原理8086與pc_第2頁
單片機(jī)課件微機(jī)原理8086與pc_第3頁
單片機(jī)課件微機(jī)原理8086與pc_第4頁
單片機(jī)課件微機(jī)原理8086與pc_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片微機(jī)原理及應(yīng)用第十章 8086CPU原理和PC體系結(jié)構(gòu)PC的發(fā)展(Intel CPU)1978年8086/8088(1981,IBM-PC)1982年802861985年803861989年804861993年P(guān)entium1995年,P6PentiumProPentiumIIPentiumIII2000-2005年P(guān)entium4(32Bit64Bit)10.1 8086CPU8086CPU的結(jié)構(gòu)8086CPU是INTER公司早期的16位結(jié)構(gòu)的微處理器16位內(nèi)部寄存器組、16位數(shù)據(jù)總線、20位地址總線(1M存儲(chǔ)單元的尋址能力)8086CPU按照功能結(jié)構(gòu)分成兩個(gè)部分:總線接口單元BIU和執(zhí)

2、行單元EUBIU負(fù)責(zé)取指、讀寫操作數(shù)EU負(fù)責(zé)指令的執(zhí)行BIU和EU分開的意義:取指和執(zhí)行重疊,提高CPU的利用率。EUBIU8086的執(zhí)行順序8086指令的執(zhí)行順序(流水線技術(shù))BIU和EU分開,取指和執(zhí)行可以重迭,大大減少了等待取指所需的時(shí)間,提高CPU的利用率取指1取指2取指3取指4取操作數(shù)取指5取指6等待執(zhí)行1執(zhí)行2執(zhí)行3執(zhí)行4執(zhí)行5時(shí)間早期的微處理器的執(zhí)行順序取指1執(zhí)行1取指2執(zhí)行2取指3取操作數(shù)3執(zhí)行3 8086的功能結(jié)構(gòu)EU控制器ALU暫 存 器標(biāo)志寄存器8位隊(duì)列總線總線控制邏輯16位內(nèi)部總線地址加法器20位地址總線16位數(shù)據(jù)總線執(zhí)行部件EU總線接口部件BIU1 2 3 4 5 6

3、指令隊(duì)列 通用寄存器AX AH ALBX BH BLCX CH CLDX DH DL SP BP DI SICSDSSSES80888086IP暫存器8086總線存儲(chǔ)器接口8086總線接口部件BIU(Bus Interface Unit)BIU從內(nèi)存中讀取執(zhí)行指令過程中所需的操作數(shù),傳送給EU部分去執(zhí)行,并把EU執(zhí)行結(jié)果送回內(nèi)存或I/O接口。BIU負(fù)責(zé)CPU內(nèi)部與存儲(chǔ)器和I/O接口的信息傳遞。BIU包括以下幾個(gè)主要任務(wù):取指令BIU從內(nèi)存取出指令送到指令隊(duì)列中。傳送數(shù)據(jù)生成20位的物理地址;4)將執(zhí)行部件的操作結(jié)果送到指定的內(nèi)存單元或I/O端口。BIU組成: 4個(gè)段寄存器、指令隊(duì)列、指令指針寄

4、存器IP和地址加法器8086的執(zhí)行部件EU指令譯碼 由EU控制系統(tǒng)將指令隊(duì)列中的指令源代碼翻譯成EU可直接執(zhí)行的指令代碼。執(zhí)行部件(EU)的功能就是負(fù)責(zé)指令的執(zhí)行。將指令譯碼并利用內(nèi)部的寄存器和ALU對(duì)數(shù)據(jù)進(jìn)行所需的處理。它主要完成以下任務(wù):執(zhí)行指令 由EU控制系統(tǒng)向各個(gè)相關(guān)部件發(fā)出與指令一致的控制信號(hào),完成指令的執(zhí)行。具體的運(yùn)算由ALU和相關(guān)寄存器負(fù)責(zé)。向BIU傳送偏移地址信息 在指令執(zhí)行過程中,如要從內(nèi)存中取操作數(shù),EU會(huì)向BIU發(fā)總線請(qǐng)求,而EU自動(dòng)算出偏移地址并送到BIU中的內(nèi)部暫存器,以便求出物理地址。算術(shù)邏輯單元ALU(Arithmetic and Logic Unit)算術(shù)和邏輯

5、運(yùn)算計(jì)算16位地址偏移量EU控制器指令譯碼形成各種控制信號(hào),控制EU各部件完成規(guī)定動(dòng)作通用寄存器,即AX、BX、CX、DX 參與運(yùn)算;存放結(jié)果。專用寄存器,即BP、SP、SI、DI標(biāo)志寄存器Flags 自動(dòng)記錄運(yùn)算結(jié)果的狀態(tài)。EU組成8086CPU寄存器組FLAGS通用寄存器(8086)8個(gè)16位通用寄存器AX、BX、CX、DX、SI、DI、BP、SP作邏輯和算術(shù)操作的操作數(shù)用于各種存儲(chǔ)器操作數(shù)的尋址方式中,作地址偏移量的計(jì)算用作串操作的地址指針4個(gè)16位數(shù)據(jù)寄存器AX、BX、CX、DX可拆分成8個(gè)8位寄存器AH、AL、BH、BL、CH、CL、DH、DL用作邏輯和算術(shù)操作的操作數(shù),也可存放運(yùn)算

6、的結(jié)果用作數(shù)據(jù)的暫存寄存器,臨時(shí)存放數(shù)據(jù)在某些指令中,作隱含功能寄存器(參見后表)BX可在基址寄存器,用于操作數(shù)尋址通用寄存器(8086)(續(xù))指針寄存器(SP、BP)SP(堆棧指針)用于在堆棧操作時(shí),存放16位棧頂單元的偏移量BP(基址指針),指向堆棧段內(nèi)的某一存儲(chǔ)單元(該單元的16位偏移量)BP還可用作數(shù)據(jù)寄存器,存放參與運(yùn)算的操作數(shù)和運(yùn)算結(jié)果變址寄存器(SI、DI)在多數(shù)指令中,可隨意選擇SI、DI作為源或目的變址寄存器在串操作指令中,SI固定作源變址指針,DI作目的變址指針SI、DI還可用作數(shù)據(jù)寄存器,存放參與運(yùn)算的操作數(shù)和運(yùn)算結(jié)果8086通用寄存器的特殊使用FLAGS寄存器(8086

7、)FLAGS(標(biāo)志寄存器)包含一組狀態(tài)標(biāo)志(CF、PF、AF、ZF、SF、OF)、一組控制標(biāo)志(TF、IF、DF)FLAGS反映了程序運(yùn)行時(shí),CPU運(yùn)算器的某些狀態(tài)OFDFIFTFSFZFAFPFCF1514131211109876543210溢出標(biāo)志方向標(biāo)志中斷標(biāo)志單步標(biāo)志符號(hào)標(biāo)志零標(biāo)志輔助進(jìn)位標(biāo)志奇偶標(biāo)志進(jìn)位標(biāo)志8086存儲(chǔ)器組織存儲(chǔ)器地址的分段分段原因:8086/8088CPU:機(jī)內(nèi)字長16位內(nèi)部寄存器16位,因此8086/8088對(duì)地址的運(yùn)算也只能是16位,也就是各種尋址方式,尋址操作數(shù)的范圍最多只能是64K字節(jié)。地址范圍0000HFFFFH外部地址線20位,直接尋址220=1M字節(jié)。

8、地址范圍00000HFFFFFH物理地址.60000H 60001H 60002H 60003H 60004H.12HF0H1BH08H8086/8088具有20條地址總線,但CPU內(nèi)部提供地址的寄存器BX、IP、SP、BP、SI和DI及算術(shù)邏輯單元ALU都是16位,只能直接處理16位地址,即尋址范圍為64k字節(jié)。因此,如何擴(kuò)大尋址范圍形成20位地址,是8位微型機(jī)跨入16位微型機(jī)的一個(gè)難題。8086/8088巧妙的采用了地址分段的方法,將尋址范圍擴(kuò)大到1兆字節(jié)。存儲(chǔ)器分段高地址低地址段起始地址段起始地址段起始地址段起始地址最大64KB段i-1段i段i+116位寄存器只能尋址64kB,所有系統(tǒng)將

9、1M存儲(chǔ)空間分為若干個(gè)邏輯段,每個(gè)邏輯段最大容量為64kB,因此1M存儲(chǔ)空間可分為16個(gè)邏輯段(015).段內(nèi)一個(gè)存儲(chǔ)單元的地址,可用相對(duì)于段起始地址的偏移量來表示,這個(gè)偏移量稱為段內(nèi)偏移地址,也稱有效地址EA。邏輯地址與物理地址邏輯地址 是程序中使用的地址,它由段基值(段寄存器內(nèi)容)和段內(nèi)偏移值(有效地址EA)所組成,段基值與段內(nèi)偏移值都為16位的二進(jìn)制數(shù),標(biāo)準(zhǔn)寫法為:“段基值:偏移量” 。 物理地址 也叫實(shí)際地址或絕對(duì)地址,是CPU訪問存儲(chǔ)器時(shí)實(shí)際使用的地址,為20位地址。在8086中,兩種地址的關(guān)系如下:物理地址 = 段基值X16 + 偏移量 存儲(chǔ)器分段段的劃分由CPU內(nèi)部4個(gè)16位段寄

10、存器指定,每個(gè)段寄存器存放段地址,確定一個(gè)段的起始地址。段寄存器及其段中存放內(nèi)容:CS 代碼段存放當(dāng)前正在運(yùn)行的程序。DS 數(shù)據(jù)段存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù)。SS 堆棧段程序堆棧區(qū),棧中的數(shù)據(jù)按后進(jìn)先出訪問。ES 附加段附加的程序段。段區(qū)的分配由操作系統(tǒng)完成,每段可以獨(dú)立地占有64K字節(jié)存儲(chǔ)區(qū),各段也可以重疊或部分重疊。在實(shí)際使用中,每段長不一定64K字節(jié),段區(qū)大小根據(jù)實(shí)際需要來分配。存儲(chǔ)器物理地址物理地址=段基地址左移4位+偏移地址60002H00H12H60000H段基地址(16位)0 0 0 0 段首地址物理地址:每一個(gè)存儲(chǔ)單元一個(gè)唯一的20位地址。物理地址由兩部分組成:段地址,偏移地址

11、格式為:段地址:偏移地址 偏移地址:指在段內(nèi)相對(duì)于段起始地址的偏移值。BIU中的地址加法器用來實(shí)現(xiàn)邏輯地址到物理地址的變換8088 可同時(shí)訪問4個(gè)段,4個(gè)段寄存器指示了每個(gè)段的基地址段基址段內(nèi)偏移物理地址+16位20位0000段基址乘以16相當(dāng)于左移四位。邏輯地址與物理地址轉(zhuǎn)換實(shí)例邏輯地址“1200H:008FH”、“1111H:1234H”1200H:008FH 代表物理單元 1208FH1111H:1234H 代表物理單元 12344H如下邏輯地址單元為同一物理單元1000H:2345H1234H:0005H1200H:0345H物理地址:12345H段寄存器4個(gè)16位段寄存器CS、DS、

12、SS、ESCS(Code Segment):代碼段寄存器,存放代碼段段地址。DS(Data Segment):數(shù)據(jù)段寄存器,存放數(shù)據(jù)段段地址。SS(Stack Segment):堆棧段寄存器,存放堆棧段段地址。ES(Extra Segment):附加段寄存器,存放附加段段地址。8086的總線周期、工作模式、引腳說明及工作時(shí)序一、8086總線的工作周期指令執(zhí)行周期:一條指令從取出到執(zhí)行完畢所需要的時(shí)間??偩€周期:由于存貯器和I/O端口是掛接在總線上的,CPU對(duì)存貯器和I/O接口的訪問,是通過總線實(shí)現(xiàn)的。通常把CPU通過總線對(duì)微處理器外部(存貯器或I/O接口)進(jìn)行一次訪問所需時(shí)間稱為一個(gè)總線周期。

13、一個(gè)總線周期一般包含4個(gè)時(shí)鐘周期,分為以T1,T2,T3,T4表示。 基本總線周期為800ns.時(shí)鐘周期:微處理器是在時(shí)鐘信號(hào)CLK控制下按節(jié)拍工作的。時(shí)鐘周期由時(shí)鐘發(fā)生器產(chǎn)生。是計(jì)算機(jī)內(nèi)部最小的時(shí)間單位,用Ti表示。時(shí)鐘周期是CPU的時(shí)間基準(zhǔn),由計(jì)算機(jī)主頻決定。8086系統(tǒng)的時(shí)鐘頻率為5MHz,每個(gè)時(shí)鐘周期約為200ns。不同指令的指令周期是不等長的,而指令周期由一個(gè)或若干個(gè)總線周期組成??臻e周期:如果在一個(gè)總線周期后不立即執(zhí)行下一個(gè)總線周期,系統(tǒng)總線處于空閑狀態(tài),此時(shí)執(zhí)行空閑周期Ti。等待周期:在實(shí)際應(yīng)用中,當(dāng)一些慢速設(shè)備在三個(gè)T周期內(nèi)無法完成數(shù)據(jù)讀寫時(shí),那么在T4后,總線就不能為它們所用

14、,會(huì)造成系統(tǒng)讀寫出錯(cuò)。為此,在總線周期中允許插入等待周期TW當(dāng)正在進(jìn)行數(shù)據(jù)讀寫的存儲(chǔ)器或外設(shè)無法在三個(gè)T周期內(nèi)無法完成數(shù)據(jù)讀寫時(shí),就由其發(fā)出一個(gè)請(qǐng)求延長總線周期的信號(hào)到8086CPU的READY引腳。8086CPU收到該請(qǐng)求后,就在T3與T4之間插入一個(gè)等待周期TW,加入TW的個(gè)數(shù)與外設(shè)請(qǐng)求信號(hào)的持續(xù)時(shí)間長短有關(guān)。8086總線的工作周期典型的總線周期示意讀周期總線讀操作(對(duì)存儲(chǔ)單元或I/O端口)寫周期總線寫操作(對(duì)存儲(chǔ)單元或I/O端口)空閑周期總線空操作而最大模式是相對(duì)最小模式而言的,此時(shí)系統(tǒng)中有兩個(gè)或多個(gè)微處理器, 其中有一個(gè)是主處理器8086/8088,其它的處理器稱為協(xié)處理器,它們協(xié)助主

15、處理器工作。用在較大系統(tǒng)中,系統(tǒng)中所有總線控制信號(hào)有8288總線控制器產(chǎn)生。二、8086/8088的工作模式 為了盡可能適應(yīng)各種各樣的使用場(chǎng)合,在設(shè)計(jì)8086 CPU芯片時(shí), 使它們可以在兩種模式下工作,即最小模式和最大模式。 所謂最小模式,就是在系統(tǒng)中只有8086/8088一個(gè)CPU,而所有的總線控制信號(hào)都由8086直接產(chǎn)生,因此系統(tǒng)中的總線控制電路被減到最少。8086/8088的工作模式由硬件決定。當(dāng)MN/MX接高電平時(shí),工作在最小模式;接低電平,工作在最大模式。最小組態(tài)(MN/MX引腳接高電平):構(gòu)建較小的計(jì)算機(jī)系統(tǒng)時(shí),系統(tǒng)地址總線由CPU地址線通過8282鎖存供給;數(shù)據(jù)總線由CPU數(shù)據(jù)

16、線經(jīng)8286緩沖后供給;系統(tǒng)控制總線由8086直接供給最大組態(tài)(MN/MX引腳接低電平) :構(gòu)建較大的計(jì)算機(jī)系統(tǒng)時(shí),系統(tǒng)地址總線和數(shù)據(jù)總線仍由8282和8286供給,系統(tǒng)控制總線由8288供給,8086通過總線控制器8288來形成各總線周期8086CPU的兩種組態(tài)的特點(diǎn)三、 8086/8088的引腳AD15AD0:低16位地址/數(shù)據(jù)總線復(fù)用引腳NMI:非屏蔽中斷輸入端INTR:可屏蔽中斷輸入端RD:存儲(chǔ)器或I/O讀信號(hào)CLK:時(shí)鐘輸入端RESET:復(fù)位信號(hào)READY:“準(zhǔn)備好”信號(hào)輸入端TEST:測(cè)試信號(hào)A19/S6A16/S3:地址/狀態(tài)復(fù)用輸出端BHE:高8位地址總線允許輸出端1、8086

17、CPU兩種組態(tài)的部分公共引腳狀態(tài)信號(hào)對(duì)當(dāng)前使用段寄存器的指示S4S3當(dāng)前正在使用的段寄存器00ES01SS10CS或未使用任何段寄存器11DSS5:指示IF的狀態(tài); S50禁止可屏蔽中斷(INTR)S60表示8086/8088占有總線; 復(fù)位后相關(guān)寄存器的初始狀態(tài)寄存器名初始狀態(tài)寄存器名初始狀態(tài)標(biāo)志寄存器0000HIP0000HCSFFFFHDS0000HSS0000HES0000H指令隊(duì)列清空其他寄存器0000H系統(tǒng)加電或操作員在鍵盤上進(jìn)行“Reset”操作時(shí)產(chǎn)生Reset信號(hào)。從FFFF0H開始執(zhí)行一條JMP指令,轉(zhuǎn)入引導(dǎo)程序入口,把操作系統(tǒng)引導(dǎo)到內(nèi)存來。3、8086最小模式下的引腳最小組

18、態(tài)時(shí),引腳24-31的定義M/IO M/IO引腳用于區(qū)別CPU訪問的是存儲(chǔ)器還是I/O 端口。DT/R 數(shù)據(jù)發(fā)送/接收信號(hào)(data transmit/receive)表明微處理器數(shù)據(jù)總線是發(fā)送數(shù)據(jù)(DT/R1)還是接收數(shù)據(jù)(DT/R0)。WR 寫控制,用來選通將8086的數(shù)據(jù)輸出到存儲(chǔ)器或I/O設(shè)備。ALE (Address latch enable) 地址鎖存允許信號(hào)表明8086的地址/數(shù)據(jù)總線包含的是地址信息,該地址可以是存儲(chǔ)器地址也可以是I/O端口號(hào)。最小組態(tài)引腳的定義(續(xù))DEN 數(shù)據(jù)總線允許(data bus enable)用來激活外部數(shù)據(jù)總線緩沖器。 HOLD/HLDA 系統(tǒng)中別

19、的總線主設(shè)備通過HOLD向CPU發(fā)出總線請(qǐng)求信號(hào),CPU在當(dāng)前總線周期的T4狀態(tài)輸出總線響應(yīng)信號(hào)HLDA,同時(shí)CPU使三總線浮空。INTA(interrupt acknowledge) 中斷響應(yīng)信號(hào)是對(duì)INTR輸入引腳的響應(yīng)。 8086最小模式下的典型配置由圖可知,在8086的最小模式中,硬件連接上有如下幾個(gè)特點(diǎn): 當(dāng)系統(tǒng)中所連接的存儲(chǔ)器和外設(shè)比較多時(shí),需要增加系統(tǒng)數(shù)據(jù)總線的驅(qū)動(dòng)能力, 這時(shí),要用兩片8286/8287作為 總線收發(fā)器。MN/MX端接+5V,決定了8086工作 在最小模式。有一片8284A,作為 時(shí)鐘發(fā)生器。有三片8282或74LS373,用來作為 地址鎖存器。 最小模式下的數(shù)

20、據(jù)傳輸方式011存儲(chǔ)器寫101存儲(chǔ)器讀010100I/O讀數(shù)據(jù)傳輸方式RDM/IOWRI/O寫4、8086最大模式下的引腳最大組態(tài)時(shí),引腳2431的定義S2、S1、S0:驅(qū)動(dòng)8288總線控制器,產(chǎn)生各種總線周期所需的控制信號(hào)RQ/GT0、RQ/GT1:總線請(qǐng)求/允許信號(hào),總線主設(shè)備向CPU請(qǐng)求總線時(shí),通過RQ給出總線請(qǐng)求信號(hào),CPU通過GT給出應(yīng)答LOCK:禁止其它總線主設(shè)備占有總線QS1、QS0:內(nèi)部指令隊(duì)列狀態(tài)BHE/S7:在總線周期的T1態(tài),輸出BHE信號(hào),表示高8位數(shù)據(jù)線AD15AD8上的數(shù)據(jù)有效最大模式下的總線狀態(tài)及對(duì)應(yīng)操作這三個(gè)信號(hào)連接到總線控制器8288的輸入端,8288對(duì)它們譯

21、碼后可以產(chǎn)生系統(tǒng)總線所需要的各種控制信號(hào)。8288的輸出命令CPU狀態(tài)中斷響應(yīng)讀I/O端口寫I/O端口暫停取指令讀存儲(chǔ)器寫存儲(chǔ)器無源狀態(tài)INTAIORCIOWCAIOWC無MRDCMRDCMWTCAMWC無0 0 00 0 11 1 11 1 01 0 00 1 10 1 01 0 1S2 S1 S0S0、S1、S2總線周期狀態(tài)信號(hào)(輸出)QS1和QS0:指令隊(duì)列狀態(tài)信號(hào)(輸出)這兩個(gè)信號(hào)決定了前一狀態(tài)中指令隊(duì)列的狀態(tài)。最大模式下的指令隊(duì)列狀態(tài)信號(hào)QS1指令隊(duì)列狀態(tài)信號(hào)的含義無操作從指令隊(duì)列的第1個(gè)字節(jié)取走代碼隊(duì)列為空從指令隊(duì)列的第1個(gè)字節(jié)及后續(xù)字節(jié)取走代碼QS000011011LOCK:總線封鎖信號(hào)(輸出)低電平有效時(shí),系統(tǒng)中其它總線主部件就

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論