版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1第2章微處理器系統(tǒng)結(jié)構(gòu)
2
本章主要介紹:微處理器(CPU)的內(nèi)部結(jié)構(gòu)及功能;Intel8086微處理器工作模式、引腳信號;堆棧。重點(diǎn)是8086CPU的內(nèi)部結(jié)構(gòu)、引腳信號以及堆棧。
3微處理器(CPU)由下列主要部分組成:算術(shù)邏輯單元ALU控制器寄存器陣列總線和總線緩沖器
高性能的CPU還有:指令預(yù)取部件,指令譯碼部件、地址形成部件、存儲器管理部件等。第2章微處理器系統(tǒng)結(jié)構(gòu)
4一、算術(shù)邏輯運(yùn)算單元(ALU)ALU是對二進(jìn)制數(shù)進(jìn)行算術(shù)邏輯運(yùn)算的基本部件。數(shù)據(jù)加工處理可歸納為兩種基本運(yùn)算:算術(shù)運(yùn)算,邏輯運(yùn)算。第2章微處理器系統(tǒng)結(jié)構(gòu)
5一、算術(shù)邏輯運(yùn)算單元(ALU)(續(xù))算術(shù)運(yùn)算:可進(jìn)行無符號數(shù)和帶符號數(shù)的加、減、乘、除運(yùn)算,符號數(shù)采用補(bǔ)碼表示,減法通過求負(fù)數(shù)的補(bǔ)碼而變成加法運(yùn)算。還可進(jìn)行BCD碼運(yùn)算。乘、除可以通過多次重復(fù)加、減和移位實(shí)現(xiàn)。
第2章微處理器系統(tǒng)結(jié)構(gòu)
6一、算術(shù)邏輯運(yùn)算單元(ALU)(續(xù))例如:1311=143=8FH1101采用部分積左移和加法
1011可完成二進(jìn)制乘法。
————11011101←部分積左移0000+.1.1.0.1————————
10001111第2章微處理器系統(tǒng)結(jié)構(gòu)
7一、算術(shù)邏輯運(yùn)算單元(ALU)(續(xù))邏輯運(yùn)算:可完成邏輯“與”、“或”、“非”、“異或”、“移位”等基本的邏輯運(yùn)算。浮點(diǎn)運(yùn)算:浮點(diǎn)數(shù)可以看作是由兩個(gè)定點(diǎn)數(shù)組成,尾數(shù)與階碼。在對階后可以對尾數(shù)進(jìn)行運(yùn)算。浮點(diǎn)數(shù)運(yùn)算可以用軟件實(shí)現(xiàn)。也可以專門生產(chǎn)浮點(diǎn)運(yùn)算部件和浮點(diǎn)微處理器,并設(shè)有專門的浮點(diǎn)運(yùn)算指令,可進(jìn)行32位或64位浮點(diǎn)加、減、乘、除運(yùn)算。Pentium處理器已把浮點(diǎn)處理器與主處理器集成到一個(gè)芯片上。早期的浮點(diǎn)處理器有:8087、80287、80387協(xié)處理器。第2章微處理器系統(tǒng)結(jié)構(gòu)
8一、算術(shù)邏輯運(yùn)算單元(ALU)(續(xù))
ALU框圖:DAA部件FlagR第2章微處理器系統(tǒng)結(jié)構(gòu)
9二、控制器
CTRL是發(fā)布操作命令的部件,操作的順序需要精確的定時(shí),其內(nèi)部主要組成如下:1、指令部件包括程序計(jì)數(shù)器(PC),指令寄存器(IR),指令譯碼器(ID)。2、時(shí)序部件包括時(shí)鐘系統(tǒng),脈沖分配器。3、微操作控制部件可采用組合邏輯控制,微程序控制和可編程邏輯陣列(PLA)來實(shí)現(xiàn)。第2章微處理器系統(tǒng)結(jié)構(gòu)
10二、控制器(續(xù))控制器的組成框圖:第2章微處理器系統(tǒng)結(jié)構(gòu)
11二、控制器(續(xù))時(shí)鐘周期(Tstate):主時(shí)鐘的兩個(gè)脈沖前沿的時(shí)間間隔稱為一個(gè)時(shí)鐘周期,又稱為T狀態(tài)。它CPU操作的最小時(shí)間單位。機(jī)器周期:由2~5個(gè)T狀態(tài)組成一個(gè)機(jī)器周期(MachineCycle),稱為M周期,又叫做總線周期,用來完成一個(gè)基本操作,如MEM讀/寫,I/O讀/寫等。指令周期:一條指令(的取出和)執(zhí)行所需的時(shí)間稱為指令周期(InstructionCycle),一條指令執(zhí)行需1~5個(gè)M周期。第2章微處理器系統(tǒng)結(jié)構(gòu)
12??M2M5CLKT4T3T1T2M1機(jī)器周期指令周期(包括1~5個(gè)機(jī)器周期)指令周期、機(jī)器周期與時(shí)鐘周期的關(guān)系如下圖:第2章微處理器系統(tǒng)結(jié)構(gòu)
13三、總線與總線(緩沖器)部件所謂總線是指計(jì)算機(jī)中傳送信息的一組通信線,將多個(gè)部件連成一個(gè)整體??梢院唵畏譃椋浩瑑?nèi)總線:在CPU內(nèi)部或部件內(nèi)部各單元之間傳送信息的總線(又可細(xì)分為單總線、雙總線(輸入/輸出BUS)、多總線結(jié)構(gòu));片外總線:CPU與外部部件之間傳送信息的總線。片外總線又稱為系統(tǒng)總線,通常系統(tǒng)總線分為地址總線、數(shù)據(jù)總線、控制總線,即所謂三總線結(jié)構(gòu)。第2章微處理器系統(tǒng)結(jié)構(gòu)
14三、總線與總線(緩沖器)部件(續(xù))因?yàn)槎鄠€(gè)部件均掛在總線上,但各部件工作情況并非完全一樣(有的作為信源發(fā),有的作為接收器收)。由于數(shù)據(jù)或信息代碼是用電位高低來表示,若某一時(shí)刻有幾個(gè)部件同時(shí)向BUS發(fā)送數(shù)據(jù),則BUS上的情況就成為不確定的了,電路也可能被燒毀。所以同一時(shí)刻只允許一個(gè)部件向BUS發(fā)送信息。而接收數(shù)據(jù)就沒有上述限制,同一時(shí)刻可允許多個(gè)部件接收數(shù)據(jù)。第2章微處理器系統(tǒng)結(jié)構(gòu)
15三、總線與總線(緩沖器)部件(續(xù))總線緩沖器:在工作過程中,常常要求掛在BUS上的某些部件在電氣連接上與BUS“脫開”,使這些部件對BUS上其它部件的工作不產(chǎn)生影響,為此,可在部件內(nèi)部設(shè)置三態(tài)緩沖器。
DATA→3態(tài)BUF→BUS;
三態(tài)緩沖器(3態(tài)BUF)處于:
低阻(高低電平)→掛BUS上;高阻→邏輯上脫開。第2章微處理器系統(tǒng)結(jié)構(gòu)
16三、總線與總線(緩沖器)部件(續(xù))“脫開”狀態(tài):處于高阻狀態(tài),開路狀態(tài),浮空狀態(tài);邏輯上“脫開”,物理上仍連在一起??偩€緩沖器分為:單向三態(tài)緩沖器,如地址總線緩沖器只發(fā)地址信息,(地址BUS是單向的);雙向三態(tài)緩沖器,如數(shù)據(jù)總線緩沖器,既可發(fā)又可收數(shù)據(jù)(數(shù)據(jù)BUS是雙向的)。第2章微處理器系統(tǒng)結(jié)構(gòu)
17三、總線與總線(緩沖器)部件(續(xù))
采用總線結(jié)構(gòu)的優(yōu)點(diǎn)是:
※減少信息傳輸線數(shù)目;
※提高系統(tǒng)的可靠性;
※增加系統(tǒng)靈活性;
※便于實(shí)現(xiàn)系統(tǒng)標(biāo)準(zhǔn)化。第2章微處理器系統(tǒng)結(jié)構(gòu)
18四、寄存器陣列(RegisterArray)在CPU內(nèi)部,有一個(gè)臨時(shí)存放地址和數(shù)據(jù)的寄存器陣列。這個(gè)陣列因CPU的不同而不同,有的稱寄存器堆,寄存器多少有差別,但其功能相似。寄存器陣列大致分為以下四組:存放待處理數(shù)據(jù)的寄存器;存放地址碼的寄存器;存放控制信息的寄存器;起數(shù)據(jù)或地址緩沖器作用的寄存器。第2章微處理器系統(tǒng)結(jié)構(gòu)
19四、寄存器陣列(RegisterArray)(續(xù))存放地址的寄存器指令指針(IP)或程序計(jì)數(shù)器(PC:ProgramCounter);堆棧指示器(SP:StackPointer);其它可存放地址的寄存器(Register),例如變址REG、基址REG。存放數(shù)據(jù)的REG累加器(AC:Accumulator);通用REG組,A,B,C,D等。第2章微處理器系統(tǒng)結(jié)構(gòu)
20存放控制信息的REG指令寄存器(IR:InstructionRegister)指令代碼;標(biāo)志寄存器(FR:FlagRegister),通常設(shè)有SF、ZF、AF、PF、CF、OF、IF、DF等標(biāo)志。起數(shù)據(jù)緩沖作用的REG數(shù)據(jù)總線緩沖REG(DBUF:DataBUSBuffer);地址總線緩沖REG(ABUF:AddressBUSBuffer)。
三態(tài),單向,內(nèi)外部地址BUS之間緩沖。四、寄存器陣列(RegisterArray)(續(xù))第2章微處理器系統(tǒng)結(jié)構(gòu)
212.18086/8088的結(jié)構(gòu)221.通用REG組
AX
主累加器
BX
累加器或基址REG
CX
累加器或計(jì)數(shù)器
DX
累加器或I/O地址REGAHALBHBLCHCLDHDL第2章微處理器系統(tǒng)結(jié)構(gòu)
2.18086/8088的結(jié)構(gòu)23
2.指針與變址REG組
堆棧指針
基址指針
源變址器
目的變址器SPBPSIDI變址REG指針REG第2章微處理器系統(tǒng)結(jié)構(gòu)
24
3.段REG組
代碼段
數(shù)據(jù)段
堆棧段
附加段
段REG是存放內(nèi)存地址的高位地址,地址形成是由段寄存器地址左移4位加上對應(yīng)的偏移量。CSDSSSES第2章微處理器系統(tǒng)結(jié)構(gòu)
25例如:被取指令的地址為CS左移4位加上IP的值。若CS=2000H,IP=0100H,則指令地址為
20000H+0100H———————20100HSS段與SP或BP對應(yīng);
DS/ES與SI、DI、BX等結(jié)合使用,串操作時(shí)有約定。第2章微處理器系統(tǒng)結(jié)構(gòu)
264.控制REG
指令指針
標(biāo)志REG
IPFRHFRL第2章微處理器系統(tǒng)結(jié)構(gòu)
27第2章微處理器系統(tǒng)結(jié)構(gòu)
5.8086CPU中有一個(gè)16位的標(biāo)志寄存器(FR)
共設(shè)有9個(gè)標(biāo)志位,用以反映算術(shù)、邏輯運(yùn)算結(jié)果的特征及反映CPU的控制,有7位無用。不同的指令對標(biāo)志的影響是不同的(如傳送類、轉(zhuǎn)移類等指令不影響標(biāo)志位,而算術(shù)邏輯運(yùn)算大部分都影響標(biāo)志位);反之,不同的標(biāo)志也影響著指令執(zhí)行的結(jié)果。
28
其中6個(gè)狀態(tài)標(biāo)志:CF、PF、AF、ZF、SF、OF
3個(gè)控制標(biāo)志:IF、DF、TF。OFDFIFTFSFZFAFPFCF1514131211109876543210第2章微處理器系統(tǒng)結(jié)構(gòu)
29CF:進(jìn)位標(biāo)志(CarryFlag)
當(dāng)運(yùn)算的結(jié)果在最高位(8位,16位)上產(chǎn)生一個(gè)進(jìn)位或借位時(shí),CF=1;反之,CF=0。PF:奇偶標(biāo)志(ParityFlag)
當(dāng)運(yùn)算結(jié)果低8位中“1”的個(gè)數(shù)為偶數(shù)時(shí),PF=1;為奇數(shù)時(shí),PF=0。第2章微處理器系統(tǒng)結(jié)構(gòu)
30AF:輔助進(jìn)位標(biāo)志(AuxiliaryCarryFlag)
在算術(shù)運(yùn)算中,當(dāng)一個(gè)8位(或16位)數(shù)的低4位向高4位(即b3位向b4位)有進(jìn)位或借位時(shí),AF=1;反之,AF=0。此標(biāo)志用于BCD碼運(yùn)算指令中。ZF:零標(biāo)志(ZeroFlag)
當(dāng)運(yùn)算結(jié)果為全“0”時(shí),ZF=1;反之,ZF=0。第2章微處理器系統(tǒng)結(jié)構(gòu)
31SF:符號標(biāo)志(SignFlag)
當(dāng)運(yùn)算結(jié)果的最高位為“1”時(shí),SF=1;反之,SF=0。OF:溢出標(biāo)志(OverflowFlag)
在算術(shù)運(yùn)算中,符號數(shù)的運(yùn)算結(jié)果超出8位或(16位)符號數(shù)表達(dá)的范圍,OF=1;反之,OF=0。(8位:-128~+127;16位:-32768~+32767)溢出與進(jìn)位是兩個(gè)不同性質(zhì)的標(biāo)志,一個(gè)反映符號數(shù),一個(gè)反映純數(shù)值。第2章微處理器系統(tǒng)結(jié)構(gòu)
32此外還設(shè)有3個(gè)控制標(biāo)志:DF:方向標(biāo)志(DirectionFlag)
用于控制字符串操作指令的步進(jìn)方向。當(dāng)DF=0時(shí),表示從低址向高址以遞增順序進(jìn)行串處理;當(dāng)DF=1時(shí),表示從高址向低址以遞減順序進(jìn)行串處理。第2章微處理器系統(tǒng)結(jié)構(gòu)
33IF:中斷允許標(biāo)志(InterruptenableFlag)
當(dāng)IF=1時(shí),允許中斷;當(dāng)IF=0時(shí),禁止中斷。該標(biāo)志可用指令STI或CLI使其置1或0。
IF標(biāo)志對NMI信號或由內(nèi)部中斷(INTn)無作用。第2章微處理器系統(tǒng)結(jié)構(gòu)
34TF:陷阱或跟蹤標(biāo)志(TrapFlag)
當(dāng)TF=1時(shí),CPU進(jìn)入單步工作方式,每執(zhí)行完一條指令就自動產(chǎn)生一個(gè)內(nèi)部中斷,以便進(jìn)行程序調(diào)試。當(dāng)TF=0時(shí),連續(xù)執(zhí)行程序。(沒有專門的指令使TF置1或0)第2章微處理器系統(tǒng)結(jié)構(gòu)
358086CPU按功能可分為兩大部分:
?一部分為BIU(BUSInterfaceUnit);
專門負(fù)責(zé)取指令和存取操作數(shù)。它與BUS打交道。
?
一部分為EU(ExecutionUnit)。
專門負(fù)責(zé)分析指令與執(zhí)行指令。它不與系統(tǒng)BUS打交道。
第2章微處理器系統(tǒng)結(jié)構(gòu)
368086內(nèi)部結(jié)構(gòu)框圖:
第2章微處理器系統(tǒng)結(jié)構(gòu)
37
BIU與外部總線打交道,負(fù)責(zé)取指令、讀寫操作數(shù)、地址轉(zhuǎn)換與總線控制;
EU負(fù)責(zé)指令譯碼與執(zhí)行指令的工作。取指令與執(zhí)行指令操作是并行的,提高了CPU的利用率,這種重疊操作技術(shù),提高了整個(gè)系統(tǒng)的運(yùn)行速度。第2章微處理器系統(tǒng)結(jié)構(gòu)
38早期的計(jì)算機(jī)取指令、執(zhí)行指令是按照時(shí)間順序進(jìn)行的。而8086CPU是二者并行同時(shí)操作的。如圖:
t隊(duì)列BIUEUt重疊執(zhí)行指令的過程取指1執(zhí)行1取指2執(zhí)行2………………12,33,4,54,5,6…………取指令1取指令2取指令3讀數(shù)據(jù)…………等待執(zhí)行1執(zhí)行2執(zhí)行3…………第2章微處理器系統(tǒng)結(jié)構(gòu)
391.BIU總線接口單元8086CPU與外設(shè)的接口部件,提供16位數(shù)據(jù)總線與20位地址總線。內(nèi)部由段REG、IP、內(nèi)部通信REG、指令隊(duì)列、地址加法器和總線控制邏輯等組成;完成取指令、指令排隊(duì)、讀/寫操作數(shù)、地址轉(zhuǎn)換與總線控制等工作;隊(duì)列為先進(jìn)先出原則組織FIFO(FirstInFirstOut),實(shí)現(xiàn)流水線操作,高性能CPU更是如此。8086有6個(gè)Byte指令隊(duì)列;需要兩個(gè)指針,OUT與IN指針;第2章微處理器系統(tǒng)結(jié)構(gòu)
40當(dāng)遇到BIU正準(zhǔn)備取指令而
EU→BIU申請讀/寫MEM或I/O時(shí),則先取指令,后讀/寫操作數(shù);當(dāng)隊(duì)列中當(dāng)前有兩個(gè)字節(jié)空間時(shí),BIU順序預(yù)取指令并填滿隊(duì)列;當(dāng)遇到CALL、JMP、INTn等指令時(shí),先把IP壓入堆棧,再清除隊(duì)列,再重新取滿隊(duì)列;第2章微處理器系統(tǒng)結(jié)構(gòu)
412.EU執(zhí)行單元組成:ALU、FR、8個(gè)通用REG、暫存器、隊(duì)列控制邏輯與時(shí)序控制邏輯(EU控制器)等;完成工作:指令譯碼與執(zhí)行指令;EU沒有連接到總線上,所以對系統(tǒng)總線來說,它是“外界”的。第2章微處理器系統(tǒng)結(jié)構(gòu)
422.28086/8088的
存儲器結(jié)構(gòu)與堆棧438086是一種單片微處理器芯片,內(nèi)外部數(shù)據(jù)總線16位,對外40條引腳,主時(shí)鐘5MHz、8MHz、10MHz等。20條地址引腳,直接尋址220
=1MByte,可訪問64K個(gè)I/O端口,具有24種尋址方式,可以對位、字節(jié)、字、字符串、字串、BCD碼、ASCll碼等多種數(shù)據(jù)類型進(jìn)行處理。80386~Pentium處理器都是32位的地址,尋址范圍為232=4GBytes=(4096MB)。2.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)1.存儲器基本結(jié)構(gòu)442.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)在存儲器中,每個(gè)存儲單元都有一個(gè)地址,每個(gè)單元中都可存儲一個(gè)字節(jié)。任何兩個(gè)相鄰的字節(jié)單元可以存放一個(gè)16位的字(word),在一個(gè)字中的每個(gè)字節(jié)有一個(gè)字節(jié)地址,這兩個(gè)地址中數(shù)值較小的那個(gè)地址作為該字的地址。如果在存儲器中存放一個(gè)字符串(字節(jié)序列),那么字符串的第一個(gè)字節(jié)存放在地址較低的單元中,以后依次存放。452.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)例如從l000H單元取出一個(gè)字,則這個(gè)字是3412H,若從l005H單元取出一個(gè)字,則這個(gè)字是CDABH。無論是從偶地址單元取字或者是從奇地址單元取字都是把該單元與下一個(gè)單元兩個(gè)相鄰地址單元的16位數(shù)取出來,且下一字節(jié)單元為高8位數(shù)。1000H121001H341002H561003H781004H901005HAB1006HCD}偶地址字}奇地址字462.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)8086中有訪問字節(jié)的指令也有訪問字的指令,不論是讀存儲器還是寫存儲器,每次總是16位。執(zhí)行訪問字節(jié)指令時(shí),只用了8位,另外8位則被忽略了。這16位總是存儲器內(nèi)兩個(gè)連續(xù)字節(jié)單元的內(nèi)容,其中第一個(gè)字節(jié)的地址是偶地址時(shí),可以通過一次訪問來實(shí)現(xiàn)其功能。然而,對于奇地址的字的讀寫指令,CPU必須讀寫兩個(gè)連續(xù)的偶地址字,兩次訪問存儲器,每次都忽略掉不需要的半個(gè)字,并對剩下的兩個(gè)字節(jié)進(jìn)行某種形式的字節(jié)調(diào)整。472.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)于是,讀寫偶地址的字的指令對操作數(shù)的讀寫操作只需訪問一次存儲器;讀寫奇地址的字的指令則必須兩次訪問存儲器,分別地取它所需要的那半個(gè)字,并進(jìn)行某種形式的字節(jié)調(diào)整,以形成指令所需要的字。字操作數(shù)存放在偶地址開始是值得推薦的。
48例:把5678H寫入1002H單元。78H→1002H56H→1003H7856M1002H1003H第2章微處理器系統(tǒng)結(jié)構(gòu)
49例:把字串12345678H寫入1000H單元。78→1000H…12→1003H
讀:從1002H讀出時(shí),讀一個(gè)字節(jié)是34,讀一個(gè)字是1234;從1001讀出一個(gè)字是3456H,但讀奇址的字時(shí),需訪問內(nèi)存兩次,忽略掉78H與12H;讀寫字節(jié)時(shí)每次數(shù)據(jù)總線上仍是16位,忽略掉另一個(gè)字節(jié)。
78563412M1000100110021003第2章微處理器系統(tǒng)結(jié)構(gòu)
50
2.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)2.存儲器的分段管理分段原因:CPU內(nèi)沒有設(shè)置20位的地址寄存器,只有16位的寄存器,16位寄存器無法存放20位地址,所以把20位地址分為基地址(段)和偏移量;分別存放在兩個(gè)16位寄存器中。51
2.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲器結(jié)構(gòu)2.存儲器的分段管理好處是:程序區(qū)、堆棧區(qū)和數(shù)據(jù)區(qū)可以互相隔離,方便程序的再定位。允許段重疊:根據(jù)情況,段與段之間可以重疊,幾個(gè)段可以在一個(gè)64K段內(nèi),但各段的起始地址是不同的。52?8086系統(tǒng)存儲器分段示意圖
第2章微處理器系統(tǒng)結(jié)構(gòu)
53存儲器的實(shí)際地址就是物理地址(或絕對地址)20位;存儲器的邏輯地址是段基址和16位偏移量組成。因?yàn)槎蜶EG為16位,所以每64KByte為一段。實(shí)際地址是由段地址左移4位加上所對應(yīng)的16位地址偏移量。
CPU中的BIU中有一個(gè)20位地址加法器,用來形成20位的物理地址(段自動左移4位與偏移量相加)。第2章微處理器系統(tǒng)結(jié)構(gòu)
54不同的邏輯地址可以變換成同一個(gè)物理地址,反之亦然。例如:物理地址為25000H
邏輯地址:段基址為2000H,偏移量5000H段基址為2100H,偏移量4000H段基址為2200H,偏移量3000H第2章微處理器系統(tǒng)結(jié)構(gòu)
55
8086可訪問8位I/O端口或16位I/O端口,若直接尋址方式尋I/O端口,用8位地址,可訪問28=256個(gè)端口地址;若用間接尋址方式尋I/O,用16位地址,可訪問216=64K個(gè)端口地址;間接尋址通過DX寄存器,I/O端口不設(shè)段REG,可以認(rèn)為全部端口都在同一個(gè)段內(nèi)。8086系列的處理器設(shè)有專門的I/O指令(即IN和OUT指令)。第2章微處理器系統(tǒng)結(jié)構(gòu)
56什么是堆棧?堆棧是一個(gè)按照后進(jìn)先出(LIFO—LastInFirstOut)的原則存取數(shù)據(jù)的部件或區(qū)域。硬件堆棧:內(nèi)部寄存器作為堆棧,工作速度快,容量不大:軟件堆棧:用內(nèi)存作為堆棧,工作速度慢,容量大,內(nèi)存有多大,堆棧就有多大,堆棧由一個(gè)堆棧指針SP和一個(gè)棧區(qū)組成。2.2.2堆棧的概念2.28086/8088的存儲器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
57為什么要用堆棧?主程序與子程序,主程序調(diào)用子程序,或者子程序調(diào)用子程序,或者處理中斷服務(wù)程序,CPU必須把主程序調(diào)用子程序指令的下一條指令的地址(或中斷時(shí)的斷點(diǎn))即PC值保留下來,才能保證子程序(或中斷服務(wù)程序)執(zhí)行完之后正確返回到主程序繼續(xù)執(zhí)行。另外,調(diào)用子程序之前的有關(guān)REG、標(biāo)志位也要及時(shí)正確的保存下來。第2章微處理器系統(tǒng)結(jié)構(gòu)
58堆棧如何操作?堆棧必須設(shè)有一個(gè)區(qū)域(棧區(qū)),還需一個(gè)指針(SP),指示棧在什么位置。8086與棧有關(guān)的寄存器是SS和SP。SS:標(biāo)識現(xiàn)行堆棧的基地址;
SP:標(biāo)識現(xiàn)行堆棧的段內(nèi)偏移量。
8086中的棧是“向下生成”的棧,即隨著入棧數(shù)據(jù)增加,SP值減小。有些處理器或單片機(jī)還有“向上生成”的棧。第2章微處理器系統(tǒng)結(jié)構(gòu)
59SP值由指令MOVSP,data設(shè)定初值。空棧時(shí),棧頂與棧底是重合的,隨著壓入棧中數(shù)據(jù)增加,堆棧擴(kuò)展,SP減小,SP始終指向棧頂。堆棧操作有專門的指令PUSH××與POP××。8086的入棧與出棧彈出操作每次是一個(gè)字,而不是一個(gè)字節(jié)。第2章微處理器系統(tǒng)結(jié)構(gòu)
60例:若SS=1200H,SP=1000H,執(zhí)行PUSHAX(設(shè)AX=1234H),看棧針與棧中的內(nèi)容。
先修改棧針,再壓入數(shù)據(jù),先壓入高字節(jié),后壓入低字節(jié)。分兩步:1.先SP-1→SP,壓入高位字節(jié)(即AH內(nèi)容);2.再SP-1→SP,壓入低位字節(jié)(即AL內(nèi)容)。第2章微處理器系統(tǒng)結(jié)構(gòu)
61
壓入堆棧操作如圖:SS×16+SP12000H+1000H13000H3412××低址高址SP=1000HSP-1→0FFFHSP-1→0FFEHM12FFEH12FFFH13000HAX=1234(2)(1)第2章微處理器系統(tǒng)結(jié)構(gòu)
62出棧操作與入棧操作相反:1.先彈出低位內(nèi)容,修改SP→SP+1;2.再彈出高位內(nèi)容,再修改SP→SP+1;注:CALL與RET中保護(hù)斷點(diǎn)與恢復(fù)斷點(diǎn)是由指令自動完成的。第2章微處理器系統(tǒng)結(jié)構(gòu)
63例:若SS=1500H,SP=1000H,執(zhí)行POPBX(設(shè)棧中數(shù)據(jù)=5678H),看棧針與棧中的內(nèi)容如何變化。彈出也分為兩步:
?先彈出低8位(78H→BL),修改棧針,SP+1→SP;
?再彈出高8位(56H→BH),再修改棧針,SP+1→SP;
執(zhí)行POPBX
指令后,BX=5678H,SP=1002H,SS=1500H,
堆棧中的數(shù)據(jù)仍然不變。第2章微處理器系統(tǒng)結(jié)構(gòu)
64彈出操作如下圖:SS×16+SP15000H+1000H16000H7856××低址高址SP=1000HSP+1→1002HSP+1→1001HM16000H16001H16002HBX=BHBL5678(1)(2)第2章微處理器系統(tǒng)結(jié)構(gòu)
652.38086/8088的
工作模式和引腳信號668086:16位微處理器,16位外部數(shù)據(jù)總線8088:16位微處理器,8位外部數(shù)據(jù)總線第2章微處理器系統(tǒng)結(jié)構(gòu)
67基本引腳信號AD15~AD0
:(地址/數(shù)據(jù)復(fù)用信號)16條,雙向,三態(tài)地址/數(shù)據(jù)線,輸入/出信號,多路開關(guān),分時(shí)復(fù)用(低16位地址線與16位數(shù)據(jù)線公用這些引線),從時(shí)間上加以區(qū)分。在T1周期,輸出MEM或I/O口地址,T2~
T4則為數(shù)據(jù)收發(fā)信號。第2章微處理器系統(tǒng)結(jié)構(gòu)
68A19/S6~A16/S3:地址/狀態(tài)輸出信號,三態(tài)。T1時(shí),作為MEM的A19~A16地址信號(訪問I/O口時(shí),保持低電平);T2~
T4時(shí),輸出狀態(tài)信息;S5:中斷允許標(biāo)志位狀態(tài)(IF);S4與S3:現(xiàn)行使用哪個(gè)段REG;第2章微處理器系統(tǒng)結(jié)構(gòu)
69S4與S3編碼性能對應(yīng)的段REG00附加數(shù)據(jù)ES01堆棧段SS10代碼段CS11數(shù)據(jù)段DS
S6指示哪個(gè)處理器在使用總線:S6=0,8086使用;S6=1,其它處理器使用。第2章微處理器系統(tǒng)結(jié)構(gòu)
70BHE/S7:允許高字節(jié)傳送/狀態(tài)輸出在T1狀態(tài),BHE在高8位數(shù)據(jù)總線D15~D8上傳送一個(gè)字節(jié)數(shù)據(jù);BHE與A0把存儲器分為兩組(高組與低組):S7狀態(tài)信號沒定義。BHEA0狀態(tài)0016位數(shù)據(jù)01高8位(D15~D8)10低8位(D7~D0)11保留不用第2章微處理器系統(tǒng)結(jié)構(gòu)
71RD讀信號,輸出讀MEM或I/O操作,由M/IO引腳決定是讀M還是I/O口:M/IO=1,讀MEM;M/IO=0,讀I/O口。READY:(輸入)外部器件發(fā)回的準(zhǔn)備就緒信號由MEM或I/O口發(fā)回的應(yīng)答信號,CPU在T3的上升沿檢測該信號,若為高,則準(zhǔn)備就緒,不插入Tw;若為低,則未準(zhǔn)備好,插入Tw;系統(tǒng)規(guī)定可插入不超過10個(gè)Tw。第2章微處理器系統(tǒng)結(jié)構(gòu)
72INTR:(Interrupt)可屏蔽中斷請求信號(IN),高電平有效觸發(fā)的輸入信號,由外部設(shè)備發(fā)來;該信號是在每一指令周期的最后一個(gè)T狀態(tài)被采樣,以決定是否進(jìn)入中斷響應(yīng)周期。可用軟件屏蔽(CLI指令使IF=0)。7.NMI:非屏蔽中斷請求信號(IN)
邊沿觸發(fā)信號,若有NMI請求,則現(xiàn)行指令結(jié)束后立即引起中斷。該信號不能用指令屏蔽,其檢測時(shí)間與INTR一樣。第2章微處理器系統(tǒng)結(jié)構(gòu)
73TEST:檢測信號(IN)
該信號由8087發(fā)來,在WAIT指令執(zhí)行期間,CPU監(jiān)視TEST信號。若TEST為低電平,8086繼續(xù)執(zhí)行WAIT的下一條指令,否則CPU處于等待(空閑)狀態(tài),且重復(fù)測試TEST信號;TEST為高時(shí),處于WAIT狀態(tài),TEST低電平時(shí)退出WAIT狀態(tài)。
8086CPU8087TESTBUSY第2章微處理器系統(tǒng)結(jié)構(gòu)
74RESET:復(fù)位信號(IN),高有效該信號使CPU結(jié)束現(xiàn)行操作,初始化內(nèi)部REG,CPU復(fù)位后:CS=FFFFHIP=0000HDS=0000HES=0000HSS=0000HFR=0000(禁止中斷)指令隊(duì)列空,復(fù)位后執(zhí)行的第一條指令在內(nèi)存的FFFF0H(引導(dǎo)程序的入口地址),用JMP可轉(zhuǎn)到實(shí)際開始處。CLK:時(shí)鐘,Vcc與GND:電源與地(IN)第2章微處理器系統(tǒng)結(jié)構(gòu)
75MN/MX:最小最大組態(tài)控制信號(IN)
當(dāng)MN/MX=0,為最大組態(tài),構(gòu)成多處理器系統(tǒng);在最大組態(tài)時(shí),控制信號由S2~S0經(jīng)總線譯碼器8288譯碼產(chǎn)生。當(dāng)MN/MX=1,為最小組態(tài),構(gòu)成單處理器系統(tǒng),CPU提供所有的總線控制信號。
MN/MX的接法決定了8個(gè)引腳(24~31)之功能。第2章微處理器系統(tǒng)結(jié)構(gòu)
76★當(dāng)MN/MX=Vcc(最小組態(tài))時(shí),各引腳功能:INTA:中斷響應(yīng)信號(OUT)
是INTR的應(yīng)答信號,在中斷響應(yīng)時(shí)發(fā)兩個(gè)INTA周期。ALE:地址鎖存允許信號(OUT)(AddressLatchEnable)
把地址/數(shù)據(jù)、地址/狀態(tài)線上的地址信號鎖存到地址鎖存器中,ALE在T1狀態(tài)有效。第2章微處理器系統(tǒng)結(jié)構(gòu)
77M/IO:MEM與I/O控制信號(OUT)
決定訪問的是MEM或者是I/O:M/IO=1,訪問MEM;M/IO=0,訪問I/O口。WR:寫信號(OUT)
用來表示CPU處于寫MEM或者I/O口(與M/IO配合使用)。第2章微處理器系統(tǒng)結(jié)構(gòu)
78DT/R:數(shù)據(jù)收發(fā)信號(雙向,三態(tài))增加數(shù)據(jù)總線的驅(qū)動能力,采用外加總線驅(qū)動器(收發(fā)器8286/8287)。當(dāng)DT/R=1,發(fā)送;
DT/R=0,接收。DEN:數(shù)據(jù)允許信號(DataEnable)(OUT)
作為總線驅(qū)動器8286/8287芯片的輸出允許信號(OE)。第2章微處理器系統(tǒng)結(jié)構(gòu)
79HOLD(IN)與HLDA(OUT):總線請求保持與總線響應(yīng)保持信號總線請求HOLD是由其它主設(shè)備發(fā)送給CPU;CPU檢測HOLD的時(shí)間:在每一個(gè)總線周期的最后一個(gè)T狀態(tài)??偩€響應(yīng)HLDA作為CPU對HOLD之應(yīng)答,并讓出總線控制權(quán)。第2章微處理器系統(tǒng)結(jié)構(gòu)
80★當(dāng)MN/MX=0(最大組態(tài))時(shí),各引腳功能:S2、S1、S0:總線周期狀態(tài)信號(OUT)
此三狀態(tài)信號由總線控制器8288譯碼產(chǎn)生CPU所需的各種控制信號,共產(chǎn)生8個(gè)控制信號。主要有:存儲器讀寫;中斷響應(yīng)INTA(ALE,DEN,DT/R);I/O口讀寫等控制信號。第2章微處理器系統(tǒng)結(jié)構(gòu)
81
RQ/GT0,RQ/GT1:(Request/Grant)總線請求(IN)/總線允許(OUT)
每一引腳都是雙向的,既可作為總線請求,又可作為總線響應(yīng)信號。外部主設(shè)備發(fā)來的請求信號為輸入,CPU響應(yīng)時(shí)為輸出。
若有兩個(gè)主設(shè)備同時(shí)請求時(shí),RQ/GT0比RQ/GT1級別高。第2章微處理器系統(tǒng)結(jié)構(gòu)
82LOCK:總線鎖定信號(OUT)
該信號由前綴指令“LOCK”使其生效,且一直保持到下一指令執(zhí)行完,以使得外部總線主控設(shè)備不能獲得對系統(tǒng)總線的控制權(quán)。第2章微處理
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年保姆看護(hù)老人協(xié)議樣本
- 投資入股協(xié)議書范文
- 【初中地理】第二章地圖知識點(diǎn)每日一背-2024-2025學(xué)年七年級地理上學(xué)期(人教版2024)
- 2024年環(huán)境衛(wèi)生治理合同協(xié)議書范本
- 房產(chǎn)投資合作協(xié)議書
- 戶外店鋪合作協(xié)議范本
- 家庭教育委托協(xié)議書新范本
- 中外貨物買賣合同要點(diǎn)解讀
- 有關(guān)上海租賃住房合同范本
- 企業(yè)擔(dān)保借款合同書
- 期中 (試題) -2024-2025學(xué)年人教PEP版英語六年級上冊
- 大學(xué)與文化傳承智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 2024春形勢與政策課件當(dāng)前國際形勢與中國原則立場
- 2024年舟山繼續(xù)教育公需課考試題庫
- 一年級拼音默寫表
- 2024屆高考英語閱讀理解命題說題課件
- 軟件正版化培訓(xùn)課件
- 第二單元 遵守社會規(guī)則 復(fù)習(xí)課件 部編版道德與法治八年級上冊
- 8000噸每年P(guān)E片材擠出設(shè)計(jì)說明書
- 防火涂層厚度檢查記錄表 (2)
- 食品工廠如何進(jìn)行蟲害控制以滿足國際食品安全認(rèn)證審核標(biāo)準(zhǔn)
評論
0/150
提交評論