版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第2章微處理器系統(tǒng)結(jié)構(gòu)
2
本章主要介紹:微處理器(CPU)的內(nèi)部結(jié)構(gòu)及功能;Intel8086微處理器工作模式、引腳信號(hào);堆棧。重點(diǎn)是8086CPU的內(nèi)部結(jié)構(gòu)、引腳信號(hào)以及堆棧。
3微處理器(CPU)由下列主要部分組成:算術(shù)邏輯單元ALU控制器寄存器陣列總線和總線緩沖器
高性能的CPU還有:指令預(yù)取部件,指令譯碼部件、地址形成部件、存儲(chǔ)器管理部件等。第2章微處理器系統(tǒng)結(jié)構(gòu)
4一、算術(shù)邏輯運(yùn)算單元(ALU)ALU是對(duì)二進(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)行無(wú)符號(hào)數(shù)和帶符號(hào)數(shù)的加、減、乘、除運(yùn)算,符號(hào)數(shù)采用補(bǔ)碼表示,減法通過(guò)求負(fù)數(shù)的補(bǔ)碼而變成加法運(yùn)算。還可進(jìn)行BCD碼運(yùn)算。乘、除可以通過(guò)多次重復(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ù)與階碼。在對(duì)階后可以對(duì)尾數(shù)進(jìn)行運(yùn)算。浮點(diǎn)數(shù)運(yùn)算可以用軟件實(shí)現(xiàn)。也可以專(zhuān)門(mén)生產(chǎn)浮點(diǎn)運(yùn)算部件和浮點(diǎn)微處理器,并設(shè)有專(zhuān)門(mén)的浮點(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)來(lái)實(shí)現(xiàn)。第2章微處理器系統(tǒng)結(jié)構(gòu)
10二、控制器(續(xù))控制器的組成框圖:第2章微處理器系統(tǒng)結(jié)構(gòu)
11二、控制器(續(xù))時(shí)鐘周期(Tstate):主時(shí)鐘的兩個(gè)脈沖前沿的時(shí)間間隔稱(chēng)為一個(gè)時(shí)鐘周期,又稱(chēng)為T(mén)狀態(tài)。它CPU操作的最小時(shí)間單位。機(jī)器周期:由2~5個(gè)T狀態(tài)組成一個(gè)機(jī)器周期(MachineCycle),稱(chēng)為M周期,又叫做總線周期,用來(lái)完成一個(gè)基本操作,如MEM讀/寫(xiě),I/O讀/寫(xiě)等。指令周期:一條指令(的取出和)執(zhí)行所需的時(shí)間稱(chēng)為指令周期(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è)整體??梢院?jiǎn)單分為:片內(nèi)總線:在CPU內(nèi)部或部件內(nèi)部各單元之間傳送信息的總線(又可細(xì)分為單總線、雙總線(輸入/輸出BUS)、多總線結(jié)構(gòu));片外總線:CPU與外部部件之間傳送信息的總線。片外總線又稱(chēng)為系統(tǒng)總線,通常系統(tǒng)總線分為地址總線、數(shù)據(jù)總線、控制總線,即所謂三總線結(jié)構(gòu)。第2章微處理器系統(tǒng)結(jié)構(gòu)
14三、總線與總線(緩沖器)部件(續(xù))因?yàn)槎鄠€(gè)部件均掛在總線上,但各部件工作情況并非完全一樣(有的作為信源發(fā),有的作為接收器收)。由于數(shù)據(jù)或信息代碼是用電位高低來(lái)表示,若某一時(shí)刻有幾個(gè)部件同時(shí)向BUS發(fā)送數(shù)據(jù),則BUS上的情況就成為不確定的了,電路也可能被燒毀。所以同一時(shí)刻只允許一個(gè)部件向BUS發(fā)送信息。而接收數(shù)據(jù)就沒(méi)有上述限制,同一時(shí)刻可允許多個(gè)部件接收數(shù)據(jù)。第2章微處理器系統(tǒng)結(jié)構(gòu)
15三、總線與總線(緩沖器)部件(續(xù))總線緩沖器:在工作過(guò)程中,常常要求掛在BUS上的某些部件在電氣連接上與BUS“脫開(kāi)”,使這些部件對(duì)BUS上其它部件的工作不產(chǎn)生影響,為此,可在部件內(nèi)部設(shè)置三態(tài)緩沖器。
DATA→3態(tài)BUF→BUS;
三態(tài)緩沖器(3態(tài)BUF)處于:
低阻(高低電平)→掛BUS上;高阻→邏輯上脫開(kāi)。第2章微處理器系統(tǒng)結(jié)構(gòu)
16三、總線與總線(緩沖器)部件(續(xù))“脫開(kāi)”狀態(tài):處于高阻狀態(tài),開(kāi)路狀態(tài),浮空狀態(tài);邏輯上“脫開(kāi)”,物理上仍連在一起??偩€緩沖器分為:?jiǎn)蜗蛉龖B(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的不同而不同,有的稱(chēng)寄存器堆,寄存器多少有差別,但其功能相似。寄存器陣列大致分為以下四組:存放待處理數(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位加上對(duì)應(yīng)的偏移量。CSDSSSES第2章微處理器系統(tǒng)結(jié)構(gòu)
25例如:被取指令的地址為CS左移4位加上IP的值。若CS=2000H,IP=0100H,則指令地址為
20000H+0100H———————20100HSS段與SP或BP對(duì)應(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位無(wú)用。不同的指令對(duì)標(biāo)志的影響是不同的(如傳送類(lèi)、轉(zhuǎn)移類(lèi)等指令不影響標(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:符號(hào)標(biāo)志(SignFlag)
當(dāng)運(yùn)算結(jié)果的最高位為“1”時(shí),SF=1;反之,SF=0。OF:溢出標(biāo)志(OverflowFlag)
在算術(shù)運(yùn)算中,符號(hào)數(shù)的運(yùn)算結(jié)果超出8位或(16位)符號(hào)數(shù)表達(dá)的范圍,OF=1;反之,OF=0。(8位:-128~+127;16位:-32768~+32767)溢出與進(jìn)位是兩個(gè)不同性質(zhì)的標(biāo)志,一個(gè)反映符號(hào)數(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)志對(duì)NMI信號(hào)或由內(nèi)部中斷(INTn)無(wú)作用。第2章微處理器系統(tǒng)結(jié)構(gòu)
34TF:陷阱或跟蹤標(biāo)志(TrapFlag)
當(dāng)TF=1時(shí),CPU進(jìn)入單步工作方式,每執(zhí)行完一條指令就自動(dòng)產(chǎn)生一個(gè)內(nèi)部中斷,以便進(jìn)行程序調(diào)試。當(dāng)TF=0時(shí),連續(xù)執(zhí)行程序。(沒(méi)有專(zhuān)門(mén)的指令使TF置1或0)第2章微處理器系統(tǒng)結(jié)構(gòu)
358086CPU按功能可分為兩大部分:
?一部分為BIU(BUSInterfaceUnit);
專(zhuān)門(mén)負(fù)責(zé)取指令和存取操作數(shù)。它與BUS打交道。
?
一部分為EU(ExecutionUnit)。
專(zhuān)門(mén)負(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é)取指令、讀寫(xiě)操作數(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í)行指令的過(guò)程取指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ì)、讀/寫(xiě)操作數(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申請(qǐng)讀/寫(xiě)MEM或I/O時(shí),則先取指令,后讀/寫(xiě)操作數(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沒(méi)有連接到總線上,所以對(duì)系統(tǒng)總線來(lái)說(shuō),它是“外界”的。第2章微處理器系統(tǒng)結(jié)構(gòu)
422.28086/8088的
存儲(chǔ)器結(jié)構(gòu)與堆棧438086是一種單片微處理器芯片,內(nèi)外部數(shù)據(jù)總線16位,對(duì)外40條引腳,主時(shí)鐘5MHz、8MHz、10MHz等。20條地址引腳,直接尋址220
=1MByte,可訪問(wèn)64K個(gè)I/O端口,具有24種尋址方式,可以對(duì)位、字節(jié)、字、字符串、字串、BCD碼、ASCll碼等多種數(shù)據(jù)類(lèi)型進(jìn)行處理。80386~Pentium處理器都是32位的地址,尋址范圍為232=4GBytes=(4096MB)。2.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)1.存儲(chǔ)器基本結(jié)構(gòu)442.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)在存儲(chǔ)器中,每個(gè)存儲(chǔ)單元都有一個(gè)地址,每個(gè)單元中都可存儲(chǔ)一個(gè)字節(jié)。任何兩個(gè)相鄰的字節(jié)單元可以存放一個(gè)16位的字(word),在一個(gè)字中的每個(gè)字節(jié)有一個(gè)字節(jié)地址,這兩個(gè)地址中數(shù)值較小的那個(gè)地址作為該字的地址。如果在存儲(chǔ)器中存放一個(gè)字符串(字節(jié)序列),那么字符串的第一個(gè)字節(jié)存放在地址較低的單元中,以后依次存放。452.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)例如從l000H單元取出一個(gè)字,則這個(gè)字是3412H,若從l005H單元取出一個(gè)字,則這個(gè)字是CDABH。無(wú)論是從偶地址單元取字或者是從奇地址單元取字都是把該單元與下一個(gè)單元兩個(gè)相鄰地址單元的16位數(shù)取出來(lái),且下一字節(jié)單元為高8位數(shù)。1000H121001H341002H561003H781004H901005HAB1006HCD}偶地址字}奇地址字462.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)8086中有訪問(wèn)字節(jié)的指令也有訪問(wèn)字的指令,不論是讀存儲(chǔ)器還是寫(xiě)存儲(chǔ)器,每次總是16位。執(zhí)行訪問(wèn)字節(jié)指令時(shí),只用了8位,另外8位則被忽略了。這16位總是存儲(chǔ)器內(nèi)兩個(gè)連續(xù)字節(jié)單元的內(nèi)容,其中第一個(gè)字節(jié)的地址是偶地址時(shí),可以通過(guò)一次訪問(wèn)來(lái)實(shí)現(xiàn)其功能。然而,對(duì)于奇地址的字的讀寫(xiě)指令,CPU必須讀寫(xiě)兩個(gè)連續(xù)的偶地址字,兩次訪問(wèn)存儲(chǔ)器,每次都忽略掉不需要的半個(gè)字,并對(duì)剩下的兩個(gè)字節(jié)進(jìn)行某種形式的字節(jié)調(diào)整。472.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)于是,讀寫(xiě)偶地址的字的指令對(duì)操作數(shù)的讀寫(xiě)操作只需訪問(wèn)一次存儲(chǔ)器;讀寫(xiě)奇地址的字的指令則必須兩次訪問(wèn)存儲(chǔ)器,分別地取它所需要的那半個(gè)字,并進(jìn)行某種形式的字節(jié)調(diào)整,以形成指令所需要的字。字操作數(shù)存放在偶地址開(kāi)始是值得推薦的。
48例:把5678H寫(xiě)入1002H單元。78H→1002H56H→1003H7856M1002H1003H第2章微處理器系統(tǒng)結(jié)構(gòu)
49例:把字串12345678H寫(xiě)入1000H單元。78→1000H…12→1003H
讀:從1002H讀出時(shí),讀一個(gè)字節(jié)是34,讀一個(gè)字是1234;從1001讀出一個(gè)字是3456H,但讀奇址的字時(shí),需訪問(wèn)內(nèi)存兩次,忽略掉78H與12H;讀寫(xiě)字節(jié)時(shí)每次數(shù)據(jù)總線上仍是16位,忽略掉另一個(gè)字節(jié)。
78563412M1000100110021003第2章微處理器系統(tǒng)結(jié)構(gòu)
50
2.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)2.存儲(chǔ)器的分段管理分段原因:CPU內(nèi)沒(méi)有設(shè)置20位的地址寄存器,只有16位的寄存器,16位寄存器無(wú)法存放20位地址,所以把20位地址分為基地址(段)和偏移量;分別存放在兩個(gè)16位寄存器中。51
2.28086/8088的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
2.2.18086/8088的存儲(chǔ)器結(jié)構(gòu)2.存儲(chǔ)器的分段管理好處是:程序區(qū)、堆棧區(qū)和數(shù)據(jù)區(qū)可以互相隔離,方便程序的再定位。允許段重疊:根據(jù)情況,段與段之間可以重疊,幾個(gè)段可以在一個(gè)64K段內(nèi),但各段的起始地址是不同的。52?8086系統(tǒng)存儲(chǔ)器分段示意圖
第2章微處理器系統(tǒng)結(jié)構(gòu)
53存儲(chǔ)器的實(shí)際地址就是物理地址(或絕對(duì)地址)20位;存儲(chǔ)器的邏輯地址是段基址和16位偏移量組成。因?yàn)槎蜶EG為16位,所以每64KByte為一段。實(shí)際地址是由段地址左移4位加上所對(duì)應(yīng)的16位地址偏移量。
CPU中的BIU中有一個(gè)20位地址加法器,用來(lái)形成20位的物理地址(段自動(dòng)左移4位與偏移量相加)。第2章微處理器系統(tǒng)結(jié)構(gòu)
54不同的邏輯地址可以變換成同一個(gè)物理地址,反之亦然。例如:物理地址為25000H
邏輯地址:段基址為2000H,偏移量5000H段基址為2100H,偏移量4000H段基址為2200H,偏移量3000H第2章微處理器系統(tǒng)結(jié)構(gòu)
55
8086可訪問(wèn)8位I/O端口或16位I/O端口,若直接尋址方式尋I/O端口,用8位地址,可訪問(wèn)28=256個(gè)端口地址;若用間接尋址方式尋I/O,用16位地址,可訪問(wèn)216=64K個(gè)端口地址;間接尋址通過(guò)DX寄存器,I/O端口不設(shè)段REG,可以認(rèn)為全部端口都在同一個(gè)段內(nèi)。8086系列的處理器設(shè)有專(zhuān)門(mén)的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的存儲(chǔ)器結(jié)構(gòu)與堆棧第2章微處理器系統(tǒng)結(jié)構(gòu)
57為什么要用堆棧?主程序與子程序,主程序調(diào)用子程序,或者子程序調(diào)用子程序,或者處理中斷服務(wù)程序,CPU必須把主程序調(diào)用子程序指令的下一條指令的地址(或中斷時(shí)的斷點(diǎn))即PC值保留下來(lái),才能保證子程序(或中斷服務(wù)程序)執(zhí)行完之后正確返回到主程序繼續(xù)執(zhí)行。另外,調(diào)用子程序之前的有關(guān)REG、標(biāo)志位也要及時(shí)正確的保存下來(lái)。第2章微處理器系統(tǒng)結(jié)構(gòu)
58堆棧如何操作?堆棧必須設(shè)有一個(gè)區(qū)域(棧區(qū)),還需一個(gè)指針(SP),指示棧在什么位置。8086與棧有關(guān)的寄存器是SS和SP。SS:標(biāo)識(shí)現(xiàn)行堆棧的基地址;
SP:標(biāo)識(shí)現(xiàn)行堆棧的段內(nèi)偏移量。
8086中的棧是“向下生成”的棧,即隨著入棧數(shù)據(jù)增加,SP值減小。有些處理器或單片機(jī)還有“向上生成”的棧。第2章微處理器系統(tǒng)結(jié)構(gòu)
59SP值由指令MOVSP,data設(shè)定初值??諚r(shí),棧頂與棧底是重合的,隨著壓入棧中數(shù)據(jù)增加,堆棧擴(kuò)展,SP減小,SP始終指向棧頂。堆棧操作有專(zhuān)門(mén)的指令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.再?gòu)棾龈呶粌?nèi)容,再修改SP→SP+1;注:CALL與RET中保護(hù)斷點(diǎn)與恢復(fù)斷點(diǎn)是由指令自動(dòng)完成的。第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;
?再?gòu)棾龈?位(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的
工作模式和引腳信號(hào)668086:16位微處理器,16位外部數(shù)據(jù)總線8088:16位微處理器,8位外部數(shù)據(jù)總線第2章微處理器系統(tǒng)結(jié)構(gòu)
67基本引腳信號(hào)AD15~AD0
:(地址/數(shù)據(jù)復(fù)用信號(hào))16條,雙向,三態(tài)地址/數(shù)據(jù)線,輸入/出信號(hào),多路開(kāi)關(guān),分時(shí)復(fù)用(低16位地址線與16位數(shù)據(jù)線公用這些引線),從時(shí)間上加以區(qū)分。在T1周期,輸出MEM或I/O口地址,T2~
T4則為數(shù)據(jù)收發(fā)信號(hào)。第2章微處理器系統(tǒng)結(jié)構(gòu)
68A19/S6~A16/S3:地址/狀態(tài)輸出信號(hào),三態(tài)。T1時(shí),作為MEM的A19~A16地址信號(hào)(訪問(wèn)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編碼性能對(duì)應(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把存儲(chǔ)器分為兩組(高組與低組):S7狀態(tài)信號(hào)沒(méi)定義。BHEA0狀態(tài)0016位數(shù)據(jù)01高8位(D15~D8)10低8位(D7~D0)11保留不用第2章微處理器系統(tǒng)結(jié)構(gòu)
71RD讀信號(hào),輸出讀MEM或I/O操作,由M/IO引腳決定是讀M還是I/O口:M/IO=1,讀MEM;M/IO=0,讀I/O口。READY:(輸入)外部器件發(fā)回的準(zhǔn)備就緒信號(hào)由MEM或I/O口發(fā)回的應(yīng)答信號(hào),CPU在T3的上升沿檢測(cè)該信號(hào),若為高,則準(zhǔn)備就緒,不插入Tw;若為低,則未準(zhǔn)備好,插入Tw;系統(tǒng)規(guī)定可插入不超過(guò)10個(gè)Tw。第2章微處理器系統(tǒng)結(jié)構(gòu)
72INTR:(Interrupt)可屏蔽中斷請(qǐng)求信號(hào)(IN),高電平有效觸發(fā)的輸入信號(hào),由外部設(shè)備發(fā)來(lái);該信號(hào)是在每一指令周期的最后一個(gè)T狀態(tài)被采樣,以決定是否進(jìn)入中斷響應(yīng)周期。可用軟件屏蔽(CLI指令使IF=0)。7.NMI:非屏蔽中斷請(qǐng)求信號(hào)(IN)
邊沿觸發(fā)信號(hào),若有NMI請(qǐng)求,則現(xiàn)行指令結(jié)束后立即引起中斷。該信號(hào)不能用指令屏蔽,其檢測(cè)時(shí)間與INTR一樣。第2章微處理器系統(tǒng)結(jié)構(gòu)
73TEST:檢測(cè)信號(hào)(IN)
該信號(hào)由8087發(fā)來(lái),在WAIT指令執(zhí)行期間,CPU監(jiān)視TEST信號(hào)。若TEST為低電平,8086繼續(xù)執(zhí)行WAIT的下一條指令,否則CPU處于等待(空閑)狀態(tài),且重復(fù)測(cè)試TEST信號(hào);TEST為高時(shí),處于WAIT狀態(tài),TEST低電平時(shí)退出WAIT狀態(tài)。
8086CPU8087TESTBUSY第2章微處理器系統(tǒng)結(jié)構(gòu)
74RESET:復(fù)位信號(hào)(IN),高有效該信號(hào)使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í)際開(kāi)始處。CLK:時(shí)鐘,Vcc與GND:電源與地(IN)第2章微處理器系統(tǒng)結(jié)構(gòu)
75MN/MX:最小最大組態(tài)控制信號(hào)(IN)
當(dāng)MN/MX=0,為最大組態(tài),構(gòu)成多處理器系統(tǒng);在最大組態(tài)時(shí),控制信號(hào)由S2~S0經(jīng)總線譯碼器8288譯碼產(chǎn)生。當(dāng)MN/MX=1,為最小組態(tài),構(gòu)成單處理器系統(tǒng),CPU提供所有的總線控制信號(hào)。
MN/MX的接法決定了8個(gè)引腳(24~31)之功能。第2章微處理器系統(tǒng)結(jié)構(gòu)
76★當(dāng)MN/MX=Vcc(最小組態(tài))時(shí),各引腳功能:INTA:中斷響應(yīng)信號(hào)(OUT)
是INTR的應(yīng)答信號(hào),在中斷響應(yīng)時(shí)發(fā)兩個(gè)INTA周期。ALE:地址鎖存允許信號(hào)(OUT)(AddressLatchEnable)
把地址/數(shù)據(jù)、地址/狀態(tài)線上的地址信號(hào)鎖存到地址鎖存器中,ALE在T1狀態(tài)有效。第2章微處理器系統(tǒng)結(jié)構(gòu)
77M/IO:MEM與I/O控制信號(hào)(OUT)
決定訪問(wèn)的是MEM或者是I/O:M/IO=1,訪問(wèn)MEM;M/IO=0,訪問(wèn)I/O口。WR:寫(xiě)信號(hào)(OUT)
用來(lái)表示CPU處于寫(xiě)MEM或者I/O口(與M/IO配合使用)。第2章微處理器系統(tǒng)結(jié)構(gòu)
78DT/R:數(shù)據(jù)收發(fā)信號(hào)(雙向,三態(tài))增加數(shù)據(jù)總線的驅(qū)動(dòng)能力,采用外加總線驅(qū)動(dòng)器(收發(fā)器8286/8287)。當(dāng)DT/R=1,發(fā)送;
DT/R=0,接收。DEN:數(shù)據(jù)允許信號(hào)(DataEnable)(OUT)
作為總線驅(qū)動(dòng)器8286/8287芯片的輸出允許信號(hào)(OE)。第2章微處理器系統(tǒng)結(jié)構(gòu)
79HOLD(IN)與HLDA(OUT):總線請(qǐng)求保持與總線響應(yīng)保持信號(hào)總線請(qǐng)求HOLD是由其它主設(shè)備發(fā)送給CPU;CPU檢測(cè)HOLD的時(shí)間:在每一個(gè)總線周期的最后一個(gè)T狀態(tài)??偩€響應(yīng)HLDA作為CPU對(duì)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)信號(hào)(OUT)
此三狀態(tài)信號(hào)由總線控制器8288譯碼產(chǎn)生CPU所需的各種控制信號(hào),共產(chǎn)生8個(gè)控制信號(hào)。主要有:存儲(chǔ)器讀寫(xiě);中斷響應(yīng)INTA(ALE,DEN,DT/R);I/O口讀寫(xiě)等控制信號(hào)。第2章微處理器系統(tǒng)結(jié)構(gòu)
81
RQ/GT0,RQ/GT1:(Request/Grant)總線請(qǐng)求(IN)/總線允許(OUT)
每一引腳都是雙向的,既可作為總線請(qǐng)求,又可作為總線響應(yīng)信號(hào)。外部主設(shè)備發(fā)來(lái)的請(qǐng)求信號(hào)為輸入,CPU響應(yīng)時(shí)為輸出。
若有兩個(gè)主設(shè)備同時(shí)請(qǐng)求時(shí),RQ/GT0比RQ/GT1級(jí)別高。第2章微處理器系統(tǒng)結(jié)構(gòu)
82LOCK:總線鎖定信號(hào)(OUT)
該信號(hào)由前綴指令“LOCK”使其生效,且一直保持到下一指令執(zhí)行完,以使得外部總線主控設(shè)備不能獲得對(duì)系統(tǒng)總線的控制權(quán)。第2章微處理
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 委托水稻收購(gòu)協(xié)議
- 2025年江蘇南京溧水商貿(mào)旅游集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2025版學(xué)生入學(xué)協(xié)議書(shū)(含國(guó)際化教育與合作交流)3篇
- 2025版旅游商品銷(xiāo)售合同模板(含行程安排)
- 2025-2030全球空調(diào)箔行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球數(shù)字按鍵鍵盤(pán)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年度裝修工程合同糾紛處理范本4篇
- 2024年平安、自護(hù)、維權(quán)知識(shí)競(jìng)賽試題及答案
- 2024年教師資格之中學(xué)教育知識(shí)與能力題庫(kù)綜合試卷A卷(附答案) (二)
- 維修門(mén)樓的簡(jiǎn)單合同書(shū)
- 《健康體檢知識(shí)》課件
- 《大模型原理與技術(shù)》全套教學(xué)課件
- 2023年護(hù)理人員分層培訓(xùn)、考核計(jì)劃表
- 生產(chǎn)計(jì)劃主管述職報(bào)告
- GB/T 44769-2024能源互聯(lián)網(wǎng)數(shù)據(jù)平臺(tái)技術(shù)規(guī)范
- 2025年四川省新高考八省適應(yīng)性聯(lián)考模擬演練(二)地理試卷(含答案詳解)
- 【經(jīng)典文獻(xiàn)】《矛盾論》全文
- 部編版語(yǔ)文五年級(jí)下冊(cè) 第一單元 專(zhuān)項(xiàng)訓(xùn)練課外閱讀(含答案)
- 2024年寧夏回族自治區(qū)中考英語(yǔ)試題含解析
- 光伏發(fā)電項(xiàng)目試驗(yàn)檢測(cè)計(jì)劃
- 《老山界》第1第2課時(shí)示范公開(kāi)課教學(xué)PPT課件【統(tǒng)編人教版七年級(jí)語(yǔ)文下冊(cè)】
評(píng)論
0/150
提交評(píng)論