仁愛學院微機原理復習2_第1頁
仁愛學院微機原理復習2_第2頁
仁愛學院微機原理復習2_第3頁
仁愛學院微機原理復習2_第4頁
仁愛學院微機原理復習2_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2.38086中的標志寄存器和堆棧

1一、標志寄存器(FlagRegister)8086CPU中有一個16位的標志寄存器(FR),共設有9個標志位,用以反映算術、邏輯運算結果的特征及反映CPU的控制,有7位無用。

不同的指令對標志的影響是不同的(如傳送類、轉移類等指令不影響標志位,而算術邏輯運算大部分都影響標志位);反之,不同的標志也影響著指令執(zhí)行的結果。

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

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

3個控制標志:IF、DF、TF。

有7位空的未用。OFDFIFTFSFZFAFPFCF15141312111098765432103一、標志寄存器(FlagRegister)(續(xù))CF:進位標志(CarryFlag)

當運算的結果在最高位(8位,16位)上產(chǎn)生一個進位或借位時,CF=1;反之,CF=0。PF:奇偶標志(ParityFlag)

當運算結果低8位中“1”的個數(shù)為偶數(shù)時,PF=1;為奇數(shù)時,PF=0。4一、標志寄存器(FlagRegister)(續(xù))AF:輔助進位標志(AuxiliaryCarryFlag)

在算術運算中,當一個8位(或16位)數(shù)的低4位向高4位(即b3位向b4位)有進位或借位時,AF=1;反之,AF=0。此標志用于BCD碼運算指令中。ZF:零標志(ZeroFlag)

當運算結果為全“0”時,ZF=1;反之,ZF=0。5SF:符號標志(SignFlag)

當運算結果的最高位為“1”時,SF=1;反之,SF=0。OF:溢出標志(OverflowFlag)

在算術運算中,符號數(shù)的運算結果超出8位或(16位)符號數(shù)表達的范圍,OF=1;反之,OF=0。(8位:-128~+127;16位:-32768~+32767)溢出與進位是兩個不同性質(zhì)的標志,一個反映符號數(shù),一個反映純數(shù)值。6此外還設有3個控制標志:DF:方向標志(DirectionFlag)

用于控制字符串操作指令的步進方向。當DF=0時,表示從低址向高址以遞增順序進行串處理;當DF=1時,表示從高址向低址以遞減順序進行串處理。7IF:中斷允許標志(InterruptenableFlag)

當IF=1時,允許中斷;當IF=0時,禁止中斷。該標志可用指令STI或CLI使其置1或0。

IF標志對NMI信號或由內(nèi)部中斷(INTn)無作用。8TF:陷阱或跟蹤標志(TrapFlag)

當TF=1時,CPU進入單步工作方式,每執(zhí)行完一條指令就自動產(chǎn)生一個內(nèi)部中斷,以便進行程序調(diào)試。當TF=0時,連續(xù)執(zhí)行程序。(沒有專門的指令使TF置1或0)9二、堆棧什么是堆棧?堆棧是一個按照后進先出(LIFO—LastInFirstOut)的原則存取數(shù)據(jù)的部件或區(qū)域。硬件堆棧:內(nèi)部寄存器作為堆棧,工作速度快,容量不大:軟件堆棧:用內(nèi)存作為堆棧,工作速度慢,容量大,內(nèi)存有多大,堆棧就有多大,堆棧由一個堆棧指針SP和一個棧區(qū)組成。10為什么要用堆棧?主程序與子程序,主程序調(diào)用子程序,或者子程序調(diào)用子程序,或者處理中斷服務程序,CPU必須把主程序調(diào)用子程序指令的下一條指令的地址(或中斷時的斷點)即PC值保留下來,才能保證子程序(或中斷服務程序)執(zhí)行完之后正確返回到主程序繼續(xù)執(zhí)行。另外,調(diào)用子程序之前的有關REG、標志位也要及時正確的保存下來。11堆棧如何操作?

堆棧必須設有一個區(qū)域(棧區(qū)),還需一個指針(SP),指示棧在什么位置。8086與棧有關的寄存器是SS和SP。SS:標識現(xiàn)行堆棧的基地址;

SP:標識現(xiàn)行堆棧的段內(nèi)偏移量。

8086中的棧是“向下生成”的棧,即隨著入棧數(shù)據(jù)增加,SP值減小。有些處理器或單片機還有“向上生成”的棧。12

SP值由指令MOVSP,data設定初值??諚r,棧頂與棧底是重合的,隨著壓入棧中數(shù)據(jù)增加,堆棧擴展,SP減小,SP始終指向棧頂。堆棧操作有專門的指令PUSH××與POP××。8086的入棧與出棧彈出操作每次是一個字,而不是一個字節(jié)。13舉例:若SS=1200H,SP=1000H,執(zhí)行PUSHAX(設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.再彈出高位內(nèi)容,再修改SP→SP+1;注:CALL與RET中保護斷點與恢復斷點是由指令自動完成的。16舉例:若SS=1500H,SP=1000H,執(zhí)行POPBX(設棧中數(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ù)仍然不變。17彈出操作如下圖:SS×16+SP15000H+1000H16000H7856××低址高址SP=1000HSP+1→1002HSP+1→1001HM16000H16001H16002HBX=BHBL5678(1)(2)18第四節(jié)8086系統(tǒng)的組成19一、存儲器的組織與分段存儲器組織

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

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

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

25

存儲器的實際地址就是物理地址(或絕對地址)20位;存儲器的邏輯地址是段基址和16位偏移量組成。因為段REG為16位,所以每64KByte為一段。實際地址是由段地址左移4位加上所對應的16位地址偏移量。

CPU中的BIU中有一個20位地址加法器,用來形成20位的物理地址。(段自動左移4位與偏移量相加)268086物理地址的形成27不同的邏輯地址可以變換成同一個物理地址,反之亦然。例如:物理地址為25000H

邏輯地址:段基址為2000H,偏移量5000H段基址為2100H,偏移量4000H段基址為2200H,偏移量3000H28二、輸入/輸出結構8086可訪問8位I/O端口或16位I/O端口,若直接尋址方式尋I/O端口,用8位地址,可訪問28=256個端口地址;若用間接尋址方式尋I/O,用16位地址,可訪問216=64K個端口地址;間接尋址通過DX寄存器,I/O端口不設段REG,可以認為全部端口都在同一個段內(nèi)。8086系列的處理器設有專門的I/O指令(即IN和OUT指令)。29三、總線接口部件介紹兩種常用的總線接口部件:地址鎖存器和總線驅動器。下面是本教材(采用國際符號)和某些教材的邏輯門電路符號對照表30三、總線接口部件地址鎖存器(8282)(或74LS373)8282(或373)是帶三態(tài)輸出緩沖器的8位雙向鎖存器。選通信號:STB(Strobe)把輸入數(shù)據(jù)鎖入鎖存器。當STB=1時,輸入數(shù)據(jù);當STB=0時,鎖存數(shù)據(jù);

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

8286(或74LS245)是8位總線驅動器(雙向)

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論