仁愛(ài)學(xué)院微機(jī)原理復(fù)習(xí)2_第1頁(yè)
仁愛(ài)學(xué)院微機(jī)原理復(fù)習(xí)2_第2頁(yè)
仁愛(ài)學(xué)院微機(jī)原理復(fù)習(xí)2_第3頁(yè)
仁愛(ài)學(xué)院微機(jī)原理復(fù)習(xí)2_第4頁(yè)
仁愛(ài)學(xué)院微機(jī)原理復(fù)習(xí)2_第5頁(yè)
已閱讀5頁(yè),還剩52頁(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)介

2.38086中的標(biāo)志寄存器和堆棧

1一、標(biāo)志寄存器(FlagRegister)8086CPU中有一個(gè)16位的標(biāo)志寄存器(FR),共設(shè)有9個(gè)標(biāo)志位,用以反映算術(shù)、邏輯運(yùn)算結(jié)果的特征及反映CPU的控制,有7位無(wú)用。

不同的指令對(duì)標(biāo)志的影響是不同的(如傳送類、轉(zhuǎn)移類等指令不影響標(biāo)志位,而算術(shù)邏輯運(yùn)算大部分都影響標(biāo)志位);反之,不同的標(biāo)志也影響著指令執(zhí)行的結(jié)果。

2一、標(biāo)志寄存器(FlagRegister)(續(xù))

其中6個(gè)狀態(tài)標(biāo)志:CF、PF、AF、ZF、SF、OF

3個(gè)控制標(biāo)志:IF、DF、TF。

有7位空的未用。OFDFIFTFSFZFAFPFCF15141312111098765432103一、標(biāo)志寄存器(FlagRegister)(續(xù))CF:進(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。4一、標(biāo)志寄存器(FlagRegister)(續(xù))AF:輔助進(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。5SF:符號(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ù)值。6此外還設(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)行串處理。7IF:中斷允許標(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ú)作用。8TF:陷阱或跟蹤標(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)有專門的指令使TF置1或0)9二、堆棧什么是堆棧?堆棧是一個(gè)按照后進(jìn)先出(LIFO—LastInFirstOut)的原則存取數(shù)據(jù)的部件或區(qū)域。硬件堆棧:內(nèi)部寄存器作為堆棧,工作速度快,容量不大:軟件堆棧:用內(nèi)存作為堆棧,工作速度慢,容量大,內(nèi)存有多大,堆棧就有多大,堆棧由一個(gè)堆棧指針SP和一個(gè)棧區(qū)組成。10為什么要用堆棧?主程序與子程序,主程序調(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)。11堆棧如何操作?

堆棧必須設(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ī)還有“向上生成”的棧。12

SP值由指令MOVSP,data設(shè)定初值??諚r(shí),棧頂與棧底是重合的,隨著壓入棧中數(shù)據(jù)增加,堆棧擴(kuò)展,SP減小,SP始終指向棧頂。堆棧操作有專門的指令PUSH××與POP××。8086的入棧與出棧彈出操作每次是一個(gè)字,而不是一個(gè)字節(jié)。13舉例:若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)容)。14

壓入堆棧操作如圖:SS×16+SP12000H+1000H13000H3412××低址高址SP=1000HSP-1→0FFFHSP-1→0FFEHM12FFEH12FFFH13000HAX=1234(2)(1)15出棧操作與入棧操作相反:1.先彈出低位內(nèi)容,修改SP→SP+1;2.再?gòu)棾龈呶粌?nèi)容,再修改SP→SP+1;注:CALL與RET中保護(hù)斷點(diǎn)與恢復(fù)斷點(diǎn)是由指令自動(dòng)完成的。16舉例:若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ù)仍然不變。17彈出操作如下圖:SS×16+SP15000H+1000H16000H7856××低址高址SP=1000HSP+1→1002HSP+1→1001HM16000H16001H16002HBX=BHBL5678(1)(2)18第四節(jié)8086系統(tǒng)的組成19一、存儲(chǔ)器的組織與分段存儲(chǔ)器組織

8086有20位地址線,尋址范圍1M字節(jié)(從00000H~FFFFFH),每一單元都有一個(gè)唯一的物理地址,每個(gè)單元存儲(chǔ)一個(gè)字節(jié),任何兩個(gè)相鄰單元可存放一個(gè)字(word)。80386~Pentium處理器都是32位的地址,尋址范圍為232=4GBytes=(4096MB)。20幾個(gè)基本概念:

字節(jié)地址—對(duì)應(yīng)的單元地址;字地址—兩個(gè)地址中低址作為字地址;字符串地址—低字節(jié)存放在低址單元,高字節(jié)存放在高址單元。21例1:把5678H寫入1002H單元。78H→1002H56H→1003H7856M1002H1003H22例2:把字串12345678H寫入1000H單元。78→1000H…12→1003H

讀:從1002H讀出時(shí),讀一個(gè)字節(jié)是34,讀一個(gè)字是1234;從1001讀出一個(gè)字是3456H,但讀奇址的字時(shí),需訪問(wèn)內(nèi)存兩次,忽略掉78H與12H;讀寫字節(jié)時(shí)每次數(shù)據(jù)總線上仍是16位,忽略掉另一個(gè)字節(jié)。請(qǐng)參看P47圖2.15,8086從存儲(chǔ)器中讀、寫字與字節(jié)示意圖78563412M100010011002100323存儲(chǔ)器分段分段原因:CPU內(nèi)沒(méi)有設(shè)置20位的地址寄存器,只有16位的寄存器,16位寄存器無(wú)法存放20位地址,所以把20位地址分為基地址(段)和偏移量;分別存放在兩個(gè)16位寄存器中。好處是:程序區(qū)、堆棧區(qū)和數(shù)據(jù)區(qū)可以互相隔離,方便程序的再定位。?允許段重疊:根據(jù)情況,段與段之間可以重疊,幾個(gè)段可以在一個(gè)64K段內(nèi),但各段的起始地址是不同的。24?8086系統(tǒng)存儲(chǔ)器分段示意圖

25

存儲(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位與偏移量相加)268086物理地址的形成27不同的邏輯地址可以變換成同一個(gè)物理地址,反之亦然。例如:物理地址為25000H

邏輯地址:段基址為2000H,偏移量5000H段基址為2100H,偏移量4000H段基址為2200H,偏移量3000H28二、輸入/輸出結(jié)構(gòu)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è)有專門的I/O指令(即IN和OUT指令)。29三、總線接口部件介紹兩種常用的總線接口部件:地址鎖存器和總線驅(qū)動(dòng)器。下面是本教材(采用國(guó)際符號(hào))和某些教材的邏輯門電路符號(hào)對(duì)照表30三、總線接口部件地址鎖存器(8282)(或74LS373)8282(或373)是帶三態(tài)輸出緩沖器的8位雙向鎖存器。選通信號(hào):STB(Strobe)把輸入數(shù)據(jù)鎖入鎖存器。當(dāng)STB=1時(shí),輸入數(shù)據(jù);當(dāng)STB=0時(shí),鎖存數(shù)據(jù);

ALE→STBOE為輸出允許信號(hào),當(dāng)其為低時(shí),數(shù)據(jù)就出現(xiàn)在數(shù)據(jù)線上;OE=1時(shí),鎖存器處于高阻。31帶三態(tài)緩沖的8位數(shù)據(jù)鎖存器82828282內(nèi)部結(jié)構(gòu)STB:選通脈沖OE:為0時(shí)輸出有效為1時(shí)輸出為高阻32雙向總線驅(qū)動(dòng)器(總線收發(fā)器)數(shù)據(jù)鎖存不是必須的,但在較大的系統(tǒng)中,由于使用的存儲(chǔ)器和I/O接口數(shù)量較多,為了增加CPU數(shù)據(jù)總線帶負(fù)載的能力,一般接入總線驅(qū)動(dòng)器以提高數(shù)據(jù)總線帶負(fù)載之能力。33

8286(或74LS245)是8位總線驅(qū)動(dòng)器(雙向)

T是控制收發(fā)方向的輸入控制信號(hào):T=1,A→B;T=0,B→A;OE=0,輸出允許信號(hào);OE=1,8086是高阻。8286可以提供32mA驅(qū)動(dòng)。34帶三態(tài)的8位雙向數(shù)據(jù)緩沖器82868286內(nèi)部結(jié)構(gòu)圖35四、8086的兩種組態(tài)最小組態(tài):

CPU提供所有的總線控制信號(hào),以實(shí)現(xiàn)與MEM和I/O接口的連接。(最小組態(tài)如下圖)368086最小模式37最大組態(tài):當(dāng)MN/MX=0時(shí),8086組成最大組態(tài),以組成多處理器系統(tǒng)。在此組態(tài)下,一些系統(tǒng)資源由多個(gè)處理器所公用,它們被稱為全局資源;另一些資源為某個(gè)處理器所專用的,稱為局部或?qū)S觅Y源。

38在多處理器系統(tǒng)中,任何時(shí)刻只能有一個(gè)處理器訪問(wèn)總線,采取的措施是:總線控制器(8288)(產(chǎn)生命令和控制時(shí)序,提供總線驅(qū)動(dòng)能力)8288對(duì)8086的三個(gè)總線狀態(tài)信號(hào)(S0、S1、S2)進(jìn)行譯碼,以產(chǎn)生與多總線結(jié)構(gòu)兼容的各種定時(shí)命令和控制信號(hào)。譯出8種信號(hào),111時(shí)不用(無(wú)源),還有7種作為命令信號(hào),請(qǐng)參看下表。39總線狀態(tài)碼與輸出命令對(duì)應(yīng)表40

(1)8288總線控制器418288提供超前寫命令(AMWC、AIOC):

即在寫周期開(kāi)始之前就啟動(dòng)寫過(guò)程,其時(shí)序與讀命令相同,在一定程度上避免處理器進(jìn)入沒(méi)必要的等待狀態(tài)。8288有兩種工作方式,由IOB決定:當(dāng)IOB=0,系統(tǒng)總線工作方式;當(dāng)IOB=1,I/O總線工作方式(8089I/O處理器)42(2)總線裁決器(8289)有了8289,才允許多個(gè)處理器(8086,8087,8089等)駐留在系統(tǒng)總線上,每個(gè)處理器都有自己的裁決器,每個(gè)裁決器都有一個(gè)總線請(qǐng)求信號(hào)BREQ??偩€的裁決器根據(jù)8086系統(tǒng)的多總線裁決規(guī)程進(jìn)行。裁決器的連接方式有3種:⑴.并聯(lián)優(yōu)先權(quán)判別方式(BREQ送入優(yōu)先權(quán)編碼器)⑵.串聯(lián)優(yōu)先權(quán)判別方式(與連接位置有關(guān),菊花鏈)⑶.循環(huán)優(yōu)先權(quán)判別方式(動(dòng)態(tài)分配,電路復(fù)雜)43總線裁決器(8289)8289總線裁決器44(3)8086最大組態(tài)圖8086最大組態(tài)特點(diǎn):三個(gè)狀態(tài)信號(hào)S0~S2經(jīng)8288總線譯碼器譯碼后產(chǎn)生最大組態(tài)時(shí)CPU對(duì)外的控制信號(hào)(共七個(gè)信號(hào)),8288本身還提供一些控制信號(hào)。最大組態(tài)電路如下圖所示。4546第五節(jié)8086系統(tǒng)時(shí)鐘與總線周期

47一、系統(tǒng)時(shí)鐘?時(shí)鐘發(fā)生器:8284A提供系統(tǒng)時(shí)鐘。8284A組成:晶體震蕩器,一個(gè)三分頻器,起步作用的READY信號(hào)及復(fù)位RESET信號(hào)。功能:提供時(shí)鐘源(EFI和晶體)信號(hào)與時(shí)鐘的同步:多個(gè)8284的同步,外部事件(Ready、Reset)與時(shí)鐘同步。輸出:

溫馨提示

  • 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)論