微機原理、匯編于接口技術(shù)(第二版)課件.ppt_第1頁
微機原理、匯編于接口技術(shù)(第二版)課件.ppt_第2頁
微機原理、匯編于接口技術(shù)(第二版)課件.ppt_第3頁
微機原理、匯編于接口技術(shù)(第二版)課件.ppt_第4頁
微機原理、匯編于接口技術(shù)(第二版)課件.ppt_第5頁
已閱讀5頁,還剩88頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2007. 6. 13,微機原理、匯編與接口技術(shù),朱定華,1.1,1.2,1.3,1.4,計算機的數(shù)和編碼,微型計算機的結(jié)構(gòu)和工作原理,80 x86微處理器,第1章 微型計算機基礎(chǔ),1.5,80 x86的寄存器,80 x86的工作方式與存儲器物理地址的生成,1.1.1 計算機中的數(shù)制,常用數(shù)制-二,十,十六進(jìn)制,為了區(qū)別3種不同數(shù)制,約定,目前在計算機中,數(shù)幾乎全部用二進(jìn)制表示 為書寫方便,微機中的二進(jìn)制數(shù)用十六進(jìn)制數(shù)縮寫 人們最熟悉、最常用的是十進(jìn)制數(shù),數(shù)后加B表示二進(jìn)制數(shù) 帶D或不帶字母符號表示十進(jìn)制數(shù) 帶H表示十六進(jìn)制數(shù),十進(jìn)制、二進(jìn)制、十六進(jìn)制數(shù)之間的關(guān)系表,數(shù)制間轉(zhuǎn)換,如: 1111

2、111000111B 1 1111 1100 0111B 0001 1111 1100 0111B = 1FC7H,1.二十六,如: 3AB9H = 0011 1010 1011 1001B,數(shù)制間轉(zhuǎn)換,2.十六十,如: 38947=9823H,如: 1F3DH=163116215161316013 =4096125615163113 =409638404813=7997,16 38947 3 16 2434 2 16 152 8 16 9 9 0,余數(shù)倒序排列,數(shù)制間轉(zhuǎn)換,3.二十 十進(jìn)制數(shù)二進(jìn)制數(shù):十進(jìn)制數(shù)十六進(jìn)制數(shù)二進(jìn)制數(shù) 二進(jìn)制數(shù)十進(jìn)制數(shù):二進(jìn)制數(shù)十六進(jìn)制數(shù)十進(jìn)制數(shù) 使用2n(2n的二

3、進(jìn)制數(shù)等于1后跟n個0)和十六進(jìn)制數(shù)、十進(jìn)制數(shù)的對應(yīng)關(guān)系(如下表所示)以及個別十進(jìn)制整數(shù)和十六進(jìn)制數(shù)的對應(yīng)關(guān)系(如50=32H,80=64H,100=64H等) 轉(zhuǎn)換,如: 38947=32768+4096+2048+32+3 =8000H+1000H+800H+20H+3H=9823H 1F3DH=2000H-(80H+40H+3H) =8192-(12864+3)=7997,1.1.2 符號數(shù)的表示方法,用數(shù)的符號和數(shù)值部分一起編碼的方法表示符號數(shù) 8位(字節(jié))、16位(字)或32位(雙字)機器數(shù)的最高位是符號位。最高位為0正數(shù),為 1負(fù)數(shù) 區(qū)分:機器數(shù)、真值、無符號數(shù) 掌握符號數(shù)的三種常

4、用表示法:原碼,反碼,補碼,如: X1= 105=+1101001B X1原=01101001B X2=-105=-1101001B X2原=11101001B,(1)原碼,注: 原碼表示的數(shù),8位數(shù)中,D7位為符號位,其余7位為數(shù)值位(為真值的絕對值) 8位原碼數(shù)的數(shù)值范圍為FFH7FH(-127127);16位原碼數(shù)的數(shù)值范圍為FFFFH7FFFH(-3276732767) 原碼表示簡單易懂,且與真值轉(zhuǎn)換方便,但內(nèi)部運算復(fù)雜,為簡化計算機結(jié)構(gòu),引進(jìn)了反碼和補碼,注: 一個負(fù)數(shù)的反碼的數(shù)值部分并不是其真值的絕對值,要按位取反才能求得真值的絕對值,如: X1= 105=+1101001B X1

5、反=01101001B X2=-105=-1101001B X2反=10010110B,(2)反碼,正數(shù)的補碼與原碼一樣,符號位為0,其余位為其數(shù)值;負(fù)數(shù)的補碼為其絕對值的補數(shù),補數(shù)有兩種求法: 按位取反后再加1 從最低位向最高位掃描,保留直至第一個“1”的所有“0”位,第一個“1”左邊各位按位取反 如:X1= 105=+1101001B X1補=01101001B X2=-105=-1101001B X2補=10010111B 對補碼表示的負(fù)數(shù)求補可以得到其絕對值 如: -105補=10010111B=97H 求補,得:01101001=69H=105,即補碼表示的機器數(shù)97H的真值是-69

6、H(=-105),(3)補碼,注: 一個補碼數(shù),若最高位為0,則該數(shù)即為此數(shù)的絕對值;若最高位為1,則其補數(shù)為該數(shù)的絕對值 8位補碼數(shù)的范圍:80H7FH(-128127).16位補碼數(shù)的范圍:8000H7FFFH(-3276832767) 補碼數(shù)80H和8000H的最高位既代表了符號為負(fù)又代表了數(shù)值為1 1個二進(jìn)制補碼數(shù)的符號位向左擴展若干位后,所得到的補碼數(shù)的真值不變 如:68補=44H字節(jié), 68補=0044H字 -68補= BCH 字節(jié), -68補= FFBCH字 微機中,符號數(shù)用補碼表示!,1.1.3 二進(jìn)制數(shù)的加減運算,二進(jìn)制加法規(guī)則:,二進(jìn)制減法規(guī)則:,0+0=0 0+1=1+0

7、=1 1+1=0 進(jìn)位1,0-0=0 1-0=1 1-1=0 0-1=1 借位1,計算機把機器數(shù)均當(dāng)作無符號數(shù)進(jìn)行運算,即符號位也參與運算,如: 59+164=3BH + 0A4H 127160=7FHA0H =0DFH =11FH=287 無進(jìn)位,CF=0 有進(jìn)位,CF=1,(1)無符號數(shù)的運算,192-10=C0H-0AH =B6H =182 無借位,CF=0,10-192=0AH-C0H =-B6H=-182 有借位,CF=1,結(jié)論:對無符號數(shù)進(jìn)行減法運算,其結(jié)果的符號用進(jìn)位來判別:CF=0(無借位)結(jié)果為正;CF=1(有借位)結(jié)果為負(fù),如:,2 )兩個無符號數(shù)相減-被減數(shù)大于或等于減數(shù)

8、,無借位,結(jié)果為正;被減數(shù)小于減數(shù),有借位,結(jié)果為負(fù)。,(2)符號數(shù)的運算,如:105+50 = 155 127,超出范圍,產(chǎn)生溢出 又如:-105-50 = -155 -128 ,超出范圍,產(chǎn)生溢出,=-155 將進(jìn)位視為符號,結(jié)果正確,=65H結(jié)果為正,錯誤,溢出,0F=1,說明: 將多位二進(jìn)制數(shù)拆成多部分運算時,數(shù)的低位部分均為無符號數(shù),只有高位部分才為符號數(shù) 注意區(qū)分進(jìn)位與溢出 溢出不同于補碼運算中的進(jìn)位或借位丟失 如: -50-5 = -55,判斷補碼運算有無溢出的方法:,設(shè)符號位向進(jìn)位位的進(jìn)位為CY,數(shù)值部分向符號位的進(jìn)位為CS,則溢出判別式為: OF=CY CS 當(dāng)OF=1時,有

9、溢出;當(dāng)OF=0時,無溢出,1.1.4 二進(jìn)制數(shù)的邏輯運算與邏輯電路,(1)邏輯非按位求反,(2)邏輯乘(邏輯與)按位求“與”,如:A=01100001B,B=11001011B A=10011110B,B=00110100B,規(guī)則:=0,=0,10=0,11=1 如:01100001B11001011B=0100 0001B,(3)邏輯加(邏輯或)按位求“或”,(4)邏輯異或(按位加)按位求模和,規(guī)則:00=0,01=1,10=1,11=1 如:01100001B11001011B=11101011B,規(guī)則:0+0=0,0+1=1,1+0=1,1+1=0 如:01100001B 110010

10、11B=10101010B,(5)正邏輯與負(fù)邏輯,正邏輯高電平表示邏輯,低電平表示邏輯0 負(fù)邏輯高電平表示邏輯 0,低電平表示邏輯1,1.1.5 二進(jìn)制編碼,即用二進(jìn)制表示的十進(jìn)制數(shù),簡稱BCD數(shù) (binary coded decimal),常用的是8421 BCD碼,計算機里,字母、各種符號以及指揮計算機執(zhí)行操作的指令,均用二進(jìn)制數(shù)的組合表示,稱為二進(jìn)制編碼,8421 BCD編碼表,壓縮BCD數(shù)用8位二進(jìn)制數(shù)表示2個十進(jìn)制數(shù)位 非壓縮BCD數(shù)用8位二進(jìn)制數(shù)表示1個十進(jìn)制數(shù)位 如:19 壓縮BCD 0001 1001 = 19H 19 非壓縮BCD 00000001 00001001 = 0

11、109H,說明: 十進(jìn)制數(shù)與BCD數(shù)的轉(zhuǎn)換 查8421 BCD編碼表直接 BCD數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 寫出BCD數(shù)的十進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 二進(jìn)制數(shù)轉(zhuǎn)換為BCD數(shù) 二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)根據(jù)十進(jìn)制數(shù)寫出BCD數(shù),(2)ASCII碼 -字符在機內(nèi)的表示 常用的ASCII碼字符如表(P10表1-4):,注: (1)十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換成BCD數(shù) 減30H BCD數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的ASCII碼 加30H (2)將十六進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換為十六進(jìn)制或?qū)⑹M(jìn)制轉(zhuǎn)換為十六進(jìn)制數(shù)的ASCII碼,要先判別ASCII碼是在哪個區(qū)段內(nèi),然后再加或減30H或37H。 (3)十進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換

12、為二進(jìn)制數(shù): 將ASCII碼轉(zhuǎn)換為ASCII BCD數(shù)寫出ASCII BCD數(shù)的十進(jìn)制數(shù)將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) (4)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的ASCII碼 過程與(3)相反,1.1.5 BCD數(shù)的加減運算,如:48+59=107,BCD數(shù)低位與高位之間逢“10”進(jìn)1,4位二進(jìn)制數(shù)之間逢“16”進(jìn)1。而計算機按二進(jìn)制規(guī)律運算,故BCD數(shù)進(jìn)行運算后須進(jìn)行調(diào)整 (1)BCD數(shù)加法,如:28-19=9,通常在微機中設(shè)有二十進(jìn)制調(diào)整電路,通過調(diào)用調(diào)整指令來實現(xiàn)調(diào)整,(2)BCD數(shù)減法,1.2,1.1,1.3,1.4,計算機的數(shù)和編碼,微型計算機的結(jié)構(gòu)和工作原理,80 x86微處理器,第1章 微型計算機

13、基礎(chǔ),1.5,80 x86的寄存器,80 x86的工作方式與存儲器物理地址的生成,位(bit)計算機所能表示的最基本、最小的數(shù)據(jù)單元。1個二進(jìn)制位有兩種狀態(tài)“0”和“1” 字(word) 計算機內(nèi)部進(jìn)行數(shù)據(jù)處理的基本單位,與寄存器、ALU寬度一致每一個字所包含的二進(jìn)制位數(shù)稱為字長 字節(jié)(byte) 8個Bit組成一個字節(jié),存放相鄰的8位二制數(shù).字節(jié)的長度固定 指令(instruction) 程序(program) 指令系統(tǒng)(instruction set),1.2.1 微型計算機常用的術(shù)語,1.2.2 微型計算機的基本結(jié)構(gòu),微型計算機的基本組成如圖所示:,微機的核心部件,具有運算和控制功能,組

14、成: 算術(shù)邏輯單元ALU(arithmetic logic unit) 寄存器(register)組 控制器(control unit),1.CPU,總線是把計算機各部分有機地連接起來的一組并行導(dǎo)線,是各個部分之間進(jìn)行信息交換的公共通道,微機的三總線: 數(shù)據(jù)總線DB 在CPU與存儲器和CPU與I/O接口之間雙向傳送數(shù)據(jù).其條數(shù)決定了每一次能同時傳送的二進(jìn)制數(shù)的位數(shù)。如:8088的數(shù)據(jù)總線為8條,一次能夠傳送8位二進(jìn)制數(shù),用D7D0表示,2.總線,地址總線AB 傳送CPU發(fā)出的地址,以尋址存儲單元或I/O端口。AB的寬度決定了計算機系統(tǒng)能夠使用的最大的存儲器容量。如:地址總線為20條,用A19A

15、0表示,可尋址220=1M的存儲空間 控制總線CB 向計算機系統(tǒng)的各部件發(fā)送操作命令和定時信息。帶有上橫線的表示低電平有效,無上橫線的表示高電平有效 如:ALE(address latch enable)、INTR高電平有效,MEMW、MEMR、IOR、IOW、INTA低電平有效,3.存儲器(memory),(1) 存儲器單元的地址和內(nèi)容,(1) 存儲器的分類 存儲器分為內(nèi)部存儲器和外部存儲器兩大類,分別簡稱為內(nèi)存和外存,外存也叫輔存,內(nèi)存也叫主存。程序和數(shù)據(jù)以文件的形式保存在外存中,要執(zhí)行的程序和要使用的數(shù)據(jù)必須事先調(diào)入內(nèi)存。為了加快CPU訪問內(nèi)存的速度,從而提高程序的運行速度,在內(nèi)存和CP

16、U之間或者CPU內(nèi)部增加了存取速度較高的高速緩沖存儲器,即cache。為了擴充內(nèi)存容量,還將外存作為內(nèi)存的輔助,給用戶提供比內(nèi)存大得多的邏輯存儲容量,這就是所謂的“虛擬存儲器”。,虛擬存儲器 人們通常所指的內(nèi)存是由“內(nèi)存條”組成的物理存儲器,物理存儲器是由地址總線直接訪問的存儲空間,其地址稱為物理地址。顯然,地址總線的條數(shù)決定了物理存儲器即內(nèi)存的最大容量。 虛擬存儲器是相對物理存儲器而言的,虛擬存儲器是指程序使用的邏輯存儲空間,它可以比物理存儲空間大得多。虛擬存儲器由內(nèi)存、輔存和管理部件共同組建。通過管理軟件達(dá)到內(nèi)存和輔存密切配合,使整個存儲系統(tǒng)的速度接近內(nèi)存、容量接近輔存。當(dāng)應(yīng)用程序訪問虛擬

17、存儲器時,必須給出虛擬地址即邏輯地址,在此過程中,先通過硬件和軟件找出邏輯地址到物理地址之間的對應(yīng)關(guān)系,判斷要訪問的是否已裝入內(nèi)存,如已裝入則直接訪問內(nèi)存,否則,相應(yīng)的硬件和管理軟件會將要訪問的有關(guān)數(shù)據(jù)塊從輔存調(diào)入內(nèi)存,與此同時將內(nèi)存中原有的暫時不使用的某數(shù)據(jù)塊調(diào)回輔存,并且將虛擬地址轉(zhuǎn)變?yōu)槲锢淼刂贰?高速緩沖存儲器 高速緩沖存儲器即高速緩存Cache是使用速度與CPU相當(dāng)?shù)撵o態(tài)隨機讀/寫存儲器芯片組成的小容量存儲器,用來存放微處理器最近要用的指令和數(shù)據(jù)。 Cache中的內(nèi)容其實是內(nèi)存中一小部分內(nèi)容的復(fù)制品,內(nèi)存中經(jīng)常被微處理器使用到的一部分內(nèi)容要烤頁到Cache中,并不斷地更新Cache中的

18、內(nèi)容,使得Cache中總是保存有最近經(jīng)常被微處理器使用的一部分內(nèi)容。 Cache中存放的內(nèi)容除了內(nèi)存中的指令和數(shù)據(jù)外,還要存放這些指令和數(shù)據(jù)在內(nèi)存中的對應(yīng)地址。當(dāng)微處理器存取指令和數(shù)據(jù)時,Cache截取微處理器送出的地址,并判別這個地址與Cache中保存的地址是否相同。若相同,則從Cache中存取該地址中的指令或數(shù)據(jù);否則就從內(nèi)存中存取。,(3) 存儲器的操作 CPU對存儲器的操作有讀和寫兩種,讀操作是CPU將存儲單元的信息取到CPU內(nèi)部,而寫操作是CPU將其內(nèi)部的信息傳送到存儲單元保存。寫操作要改變被寫存儲單元的內(nèi)容,而讀操作則不改變被讀存儲單元的內(nèi)容。向存儲單元存放或取出信息,都稱為訪問存

19、儲器。訪問存儲器時,先由地址譯碼器將送來的單元地址進(jìn)行譯碼,找到相應(yīng)的存儲單元;再由讀寫控制電路,根據(jù)送來的讀或?qū)懨畲_定訪問存儲器的方式,完成讀出(讀)或?qū)懭?寫)操作。,4.總線插座和接口 外部設(shè)備通過總線插座和接口與計算機連接。設(shè)置接口的主要原因 外設(shè)的工作速度遠(yuǎn)低于CPU的速度 外設(shè)表示信息的格式與計算機不同 接口向計算機報告設(shè)備的狀態(tài),傳達(dá)計算機命令等,(5)I/O設(shè)備,輸入設(shè)備:鍵盤、模數(shù)轉(zhuǎn)換器、掃描儀等 輸出設(shè)備:顯示器、打印機、繪圖機等 輸入/輸出設(shè)備:磁盤和光盤等,1.2.3 計算機的工作原理,CPU、存儲器、I/O接口、外部設(shè)備構(gòu)成了計算機的硬件(hardware),光有這

20、樣的硬件還只是具有了計算的可能。計算機要真正能夠進(jìn)行計算還必須有多種程序的配合 當(dāng)人們要解決問題時,首先將問題程序化,形成指令序列,然后將它存入存儲器中,再由CPU的控制器和ALU依據(jù)程序中指令的順序周而復(fù)始地取出指令,分析指令,執(zhí)行指令,最后輸出程序結(jié)果.即“程序存儲和程序控制”,1.2,1.1,1.4,計算機的數(shù)和編碼,微型計算機的結(jié)構(gòu)和工作原理,80 x86微處理器,第1章 微型計算機基礎(chǔ),1.5,80 x86的寄存器,80 x86的工作方式與存儲器物理地址的生成,1.3,1.3.1 8086/8088,(1)執(zhí)行單元EU(execution unit),(2)總線接口單元BIU(bus

21、 interface unit),EU負(fù)責(zé)執(zhí)行指令,完成兩種操作:算術(shù)邏輯運算、計算存儲器操作數(shù)的偏移地址,BIU完成所有的總線操作 EU和BIU并行工作,可以同時進(jìn)行讀/寫操作和執(zhí)行指令的操作,1.3.1 8086/8088,1.3.2 80286,內(nèi)部和外部數(shù)據(jù)總線都是16位,地址總線為24位,可尋址224字節(jié)即16MB內(nèi)存,支持虛擬存儲器管理技術(shù),虛擬存儲空間可達(dá)1GB(230)。 微處理器的組成: 地址單元AU(Address Unit) 總線單元BU(Bus Unit) 指令單元IU(Instruction Unit) 執(zhí)行單元EU AU中的存儲器管理機構(gòu)使用段式管理方式,首次實現(xiàn)了

22、虛擬存儲器管理,1.3.3 80386,內(nèi)部和外部數(shù)據(jù)總線都是32位的,地址總線為32位,可尋址4GB,虛擬存儲空間可達(dá)64TB(246) 微處理器的組成: 總線接口單元BIU 指令譯碼單元IDU(Instruction Decode Unit) 指令預(yù)取單元IPU(Instruction Prefetch Unit) 執(zhí)行單元EU 分段單元SU(Segmentation Unit) 分頁單元PU(Paging Unit),1.3.4 80486,內(nèi)部數(shù)據(jù)總線為64位,外部數(shù)據(jù)總線為32位,地址總線為32位) 微處理器的組成: 總線接口單元、指令譯碼單元 指令預(yù)取單元、執(zhí)行單元 分段單元 分頁

23、單元以及浮點處理單元(FPU) 高速緩存(Cache memory),1. Pentium微處理器的內(nèi)部結(jié)構(gòu),1.3.5 Pentium,(1)總線接口單元 總線接口單元實現(xiàn)微處理器與微型計算機系統(tǒng)總線的連接,其中包括64位數(shù)據(jù)線、32位地址線和眾多的信號線,以此實現(xiàn)微處理器與外部的信息交換。Pentium微處理器與外部交換數(shù)據(jù)可以是64位還可以是32位、16位或者8位。 (2)分段單元和分頁單元 分段單元將程序提供的邏輯地址轉(zhuǎn)換為線性地址,分頁單元將線性地址轉(zhuǎn)換為物理地址。 分頁是將段分為多個固定大小的頁面(通常為4KB),分頁支持虛擬存儲器環(huán)境。內(nèi)存中只保留程序訪問的頁面,而眾多的頁面被存

24、儲在磁盤中。當(dāng)程序要訪問線性地址空間中的某個地址時,分頁單元先將線性地址轉(zhuǎn)換為存儲器的物理地址,然后執(zhí)行對該地址的讀操作或?qū)懖僮?。如果所訪問的頁面不在物理內(nèi)存中,微處理器就會暫時中斷該程序的執(zhí)行,由操作系統(tǒng)將所需的頁面從磁盤讀入物理內(nèi)存中,然后接著執(zhí)行被中斷的程序。,(3)U流水線和V流水線 Pentium采用兩條流水線,這兩條流水線都擁有自己的算術(shù)邏輯單元ALU、地址生成電路和數(shù)據(jù)Cache的接口。這種雙流水線結(jié)構(gòu)允許Pentium可以一次執(zhí)行兩條指令,每條流水線中執(zhí)行一條。 (4)指令Cache和數(shù)據(jù)Cache 在Pentium中,指令Cache和數(shù)據(jù)Cache兩者分開,從而減少了指令預(yù)取

25、和數(shù)據(jù)存取操作之間可能發(fā)生的沖突,并可提高命中率。Pentium的數(shù)據(jù)Cache有兩個接口,分別與U和V兩條流水線相連,以便同時和兩條流水線交換數(shù)據(jù)。 (5)指令預(yù)取單元、指令譯碼單元和控制ROM 指令預(yù)取單元從指令Cache中預(yù)先取指令,每次取兩條指令。如果是簡單指令,通過指令譯碼單元譯碼后,將兩條指令分別送到U流水線和V流水線執(zhí)行。如果是復(fù)雜指令,通過控制ROM將其轉(zhuǎn)換成對應(yīng)的一系列微指令,再送到U流水線和V流水線執(zhí)行。復(fù)雜指令對應(yīng)的微指令存放在控制ROM中。微指令是微處理器能夠直接執(zhí)行的指令,它的長度是固定的,因此很容易在流水線中進(jìn)行處理。,(6)控制單元 控制單元的功能是通過對來自指令

26、譯碼單元和和控制ROM中微程序的解析,控制U流水線、V流水線和浮點處理單元的正常運行。 (7)分支轉(zhuǎn)移目標(biāo)緩沖器 分支轉(zhuǎn)移目標(biāo)緩沖器在遇到分支轉(zhuǎn)移指令時用來預(yù)測轉(zhuǎn)移是否發(fā)生,并據(jù)此為分支指令處的指令提供預(yù)取地址。 (8)浮點處理單元 浮點處理單元主要用于浮點運算,使得浮點運算的速度得到提高。,1.3.5 Pentium,2.Pentium微處理器的先進(jìn)技術(shù) (1)超標(biāo)量流水線 (2)分支轉(zhuǎn)移的動態(tài)預(yù)測 (3)獨立的指令Cache和數(shù)據(jù)Cache (4)重新設(shè)計的浮點單元,1.2,1.1,計算機的數(shù)和編碼,微型計算機的結(jié)構(gòu)和工作原理,80 x86微處理器,第1章 微型計算機基礎(chǔ),1.5,80 x

27、86的寄存器,80 x86的工作方式與存儲器物理地址的生成,1.4,1.3,1.4.1 8086/8088 的寄存器,通用寄存器共8個:AX,BX,CX,DX,SP,BP,SI,DI,均為16位,在EU部件中 AX,BX,CX,DX均可分成高8位和低8位,作為獨立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL AX累加器,BX基址寄存器 CX計數(shù)寄存器,DX數(shù)據(jù)寄存器 SP堆棧指示器,BP基址指示器 SI源變址寄存器,DI目的變址寄存器,1.通用寄存器,IP 硬件電路,能自動跟蹤指令地址。 在開始執(zhí)行程序時,賦給IP第一條指令的地址,然后每取一條指令,IP的值就自動指向下一條

28、指令的地址,2.指令指示器IP(instruction point),9個標(biāo)志位,其中6個狀態(tài)標(biāo)志,3個控制標(biāo)志,3.狀態(tài)標(biāo)志寄存器(status flags),進(jìn)位標(biāo)志位CF 加減運算執(zhí)行后,最高位有進(jìn)位或借位,CF=1;無進(jìn)位或借位,CF=0 主要用于多字節(jié)加減運算 輔助進(jìn)位標(biāo)志位AF 最低4位D3D0位有進(jìn)位或借位,AF=1;無進(jìn)位或借位,AF=0 用于BCD數(shù)的算術(shù)運算(調(diào)整)指令,(1)狀態(tài)標(biāo)志,反映EU執(zhí)行算術(shù)或邏輯運算后的結(jié)果,3.狀態(tài)標(biāo)志寄存器(status flags),溢出標(biāo)志位OF 運算結(jié)果超出了機器數(shù)所能表示的數(shù)的范圍OF=1;反之,OF=0 該標(biāo)志表示運算結(jié)果是否產(chǎn)生

29、了溢出 符號標(biāo)志位SF 結(jié)果為負(fù)數(shù),SF=1;結(jié)果為正數(shù),SF=0 零標(biāo)志位 結(jié)果為0,ZF=1;結(jié)果不為0,ZF=0 奇偶標(biāo)志位PF 結(jié)果低八位中1的個數(shù)為偶數(shù),PF=1;為奇數(shù),PF=0。用于檢查數(shù)據(jù)在傳送過程中是否發(fā)生錯誤,3.狀態(tài)標(biāo)志寄存器(status flags),方向標(biāo)志位DF 控制數(shù)據(jù)串操作指令的步進(jìn)方向 DF=1,地址增址;DF=0,地址減址 中斷允許標(biāo)志位IF 控制CPU是否開中斷. IF=1, CPU開中斷 IF=0, CPU關(guān)中斷 追蹤標(biāo)志位TF(陷阱標(biāo)志位) TF=1,CPU單步執(zhí)行程序,常用于程序的調(diào)試 TF=0,CPU正常執(zhí)行程序,(2)控制標(biāo)志,用于控制CPU的

30、操作。,3.狀態(tài)標(biāo)志寄存器(status flags),實地址方式使用20條地址線,存儲器的物理地址必須用20位二進(jìn)制數(shù)表示。ALU只能處理16位的地址運算,與地址有關(guān)的寄存器:指令指示器,堆棧指示器,間接尋址的寄存器BX,BP,SI,DI等都只有16位。因此在實地址方式下把20位的存儲器地址分成若干個段來表示。段寄存器就是用來存放段的起始地址的高16位地址的寄存器。段內(nèi)再由16位二進(jìn)制數(shù)來尋址,段內(nèi)尋址的16位二進(jìn)制數(shù)地址是存儲單元到段起始地址的距離,稱為段內(nèi)偏移地址。 存儲單元的地址由段基址的高16位或段寄存器和偏移地址兩部分組成,用冒號連接段基址的高16位或段寄存器和偏移地址,像這樣表示

31、的地址稱為邏輯地址。 段基址的高16位:偏移地址 或 段寄存器:偏移地址。,4.段寄存器,CS-存放代碼段的段基址的高16位 SS-存放堆棧段的段基址的高16位 DS-存放數(shù)據(jù)段的段基址的高16位 ES-存放附加數(shù)據(jù)段的段基址的高16位,1.4.2 80286的 寄存器,在8086的基礎(chǔ)上新增: 16位的機器狀態(tài)字寄存器MSW:只定義了低4位 標(biāo)志寄存器EFLAGS增加兩個標(biāo)志位: 任務(wù)嵌套標(biāo)志位NT(nested task )和I/O特權(quán)級標(biāo)志位IOPL(I/O privilege level field)分別位于D14、 D13和D12 3位,1.4.3 80386的 寄存器,1.基本寄存

32、器,(1)通用寄存器,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,均為32位 低16位AX、BX、CX、DX、SP、BP、SI、DI,用法與8086完全相同,1.4.3 80386的 寄存器,(2)指令指示器EIP和標(biāo)志寄存器EFLAGS,均為32位,它們的低16位即是8086的IP和FLAGS,并可單獨使用 工作于保護(hù)方式下時,EIP是32位的寄存器;工作于實地址方式下時,EIP就是16位的寄存器IP 保留了80286的所有標(biāo)志,并在高位字的最低兩位D17和D16增加了虛擬8086方式標(biāo)志VM和恢復(fù)標(biāo)志RF,1.4.3 80386的 寄存器,(3)段寄存器,6個段寄存器:

33、CS,SS,DS,ES,FS,GS,均為16位FS、GS的作用與ES相同 段基址與段寄存器的關(guān)系由微處理器80386的工作方式確定,1.4.3 80386的 寄存器,2.系統(tǒng)寄存器,(1)系統(tǒng)地址寄存器,全局描述符表寄存器GDTR 中斷描述符表寄存器IDTR 局部描述符表寄存器LDTR 任務(wù)寄存器TR 主要用來在保護(hù)模式下管理用于生成線性地址和物理地址的個系統(tǒng)表,1.4.3 80386的 寄存器,(2)控制寄存器 控制寄存器有個:CR0CR3,CR1為備用。主要用來進(jìn)行分頁處理。 (3)調(diào)試寄存器 DR0DR7,主要用來設(shè)置程序的斷點 (4)測試寄存器 TR6和TR7,用來進(jìn)行頁處理,1.4.

34、4 80486的 寄存器,新增加3個測試寄存器TR3TR5用于片內(nèi)Cache測試以及浮點處理單元的浮點寄存器 80486除了保留80386的所有標(biāo)志外,在D18位增加了對準(zhǔn)檢查標(biāo)志AC(alignment check),1.4.5 Pentium的 寄存器,1.基本寄存器,(1)通用寄存器,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,均為32位 低16位AX、BX、CX、DX、SP、BP、SI、DI,用法與8086完全相同,1.4.5 Pentium的 寄存器,(2)指令指示器EIP,EIP是32位的寄存器,它用來存放下一條要執(zhí)行指令的偏移地址 低16位即是8086的指令指

35、示器IP,可單獨使用 微處理器工作于保護(hù)方式下時,EIP是32位的寄存器;工作于實地址方式下時,EIP是16位的指令指示器IP。,1.4.5 Pentium的 寄存器,(3)標(biāo)志寄存器EFLAGS,1.4.5 Pentium的 寄存器,(4)段寄存器,6個16位段寄存器:CS、SS、DS、ES、FS、GS。 在實地址方式,段寄存器用來存放段的起始地址即段基址的高16位地址;CS、SS、DS和ES的作用與8086相同,F(xiàn)S和GS的作用與ES相同。在虛地址保護(hù)方式,段寄存器中存放的是選擇字,選擇字如下圖所示。CS 、SS、DS中的描述符索引分別指向當(dāng)前段對應(yīng)的段描述符,ES、FS和GS中的描述符索

36、引指向當(dāng)前3個附加數(shù)據(jù)段對應(yīng)的段描述符,由此可以找到當(dāng)前各個段的段基址。,1.4.5 Pentium的 寄存器,2.系統(tǒng)寄存器,(1)系統(tǒng)地址寄存器,GDTR:48位,其中高32位是全局描述符表GDT的線性基地址,低16位是GDT的界限 IDTR:48位,其中高32位是中斷描述符表IDT的線性基地址,低16位是IDT的界限 LDTR:16位,用來存放描述符索引,據(jù)此可在全局描述符表GDT中檢索到局部描述符表LDT對應(yīng)的描述符 TR:16位,用來存放描述符索引,據(jù)此可在全局描述符表GDT中檢索到任務(wù)狀態(tài)段TSS對應(yīng)的描述符,1.4.5 Pentium的 寄存器,(2)控制寄存器,CR0:用來保存

37、系統(tǒng)的標(biāo)志, CR0的低位字是機器狀態(tài)字MSW(machine status word),1.4.5 Pentium的 寄存器,CR2和CR3:是兩個用于存儲器管理的地址寄存器。在分頁操作時,如果出現(xiàn)異常,CR2中則會保存異常處的32位線性地址。CR3的前20位保存著頁目錄表的基地址,CR3的D3位和D4位用來對外部Cache進(jìn)行控制。 CR4:只用了最低7位,所用位的定義如下圖所示。,1.4.5 Pentium的 寄存器,(3)調(diào)試寄存器,8個調(diào)試寄存器是DR0DR7主要用來設(shè)置程序的斷點和程序調(diào)試 DR0DR3:保存4個斷點的線性地址 DR4和DR5:Intel公司保留 DR6:調(diào)試狀態(tài)寄

38、存器,在調(diào)試過程中用來報告斷點處的狀況 DR7:配合設(shè)置的斷點控制寄存器,用來設(shè)置控制標(biāo)志,控制斷點的設(shè)置、設(shè)置條件、斷點地址的有效范圍以及是否進(jìn)入異常中斷等 (4) 測試寄存器 Pentium有18個測試寄存器,用寄存器號00H14H來表示, 其中有3個號未使用。每個測試寄存器有一個特定的測試功能。 Pentium有專用的讀/寫指令來訪問這些測試寄存器。,1.4.5 Pentium的 寄存器,3.浮點寄存器,(1)數(shù)據(jù)寄存器 數(shù)據(jù)寄存器有8個,它們是R0R7。每個寄存器有80位,80位的浮點數(shù)中1位為符號位、15位為階碼、64位為尾數(shù) (2)標(biāo)記字寄存器 標(biāo)記字寄存器是1個16位的寄存器,每

39、2位為1個標(biāo)記,共8個標(biāo)記,分別指示8個數(shù)據(jù)寄存器的狀態(tài)。,1.4.5 Pentium的 寄存器,(3)狀態(tài)寄存器 16位的寄存器,用來指示浮點處理單元的當(dāng)前狀態(tài),1.4.5 Pentium的 寄存器,(4)控制字寄存器,1.4.5 Pentium的 寄存器,(5) 指令指示器和數(shù)據(jù)指示器 存放發(fā)生故障的指令地址及其操作數(shù)的存儲地址,1.2,1.3,1.4,計算機的數(shù)和編碼,微型計算機的結(jié)構(gòu)和工作原理,80 x86微處理器,第1章 微型計算機基礎(chǔ),1.5,80 x86的寄存器,80 x86的工作方式與存儲器物理地址的生成,1.5,1.1,80 x86的工作方式有4種: 實地址方式(real a

40、ddress mode) 虛地址保護(hù)方式 (protected virtual address mode) 虛擬8086方式(virtual 8086 mode) 系統(tǒng)管理方式(system management mode) 8086/8088只有實地址方式1種工作方式 80286有實地址方式和虛地址保護(hù)方式2種工作方式 80386和80486有實地址、虛地址保護(hù)方式和虛擬8086方式種工作方式。 Pentium有實地址方式、虛地址保護(hù)方式、虛擬8086方式和系統(tǒng)管理方式4種。,1.5.1 80 x86的工作方式,1. 實地址方式 實地址方式是實在的1MB的物理地址空間的工作方式,實地址方式采

41、用存儲器地址分段的方法,使兩個16位的地址實現(xiàn)了對1MB地址空間尋址的20位的物理地址。在實地址方式下,操作數(shù)的默認(rèn)長度為16位,可以運行8086的全部指令。80 x86除了虛地址保護(hù)方式指令外,其余指令都可以在實地址方式下運行。8086和80286微處理器允許4種存儲器分段,段寄存器為CS、DS、SS和ES。80386以上微處理器允許6種存儲器分段,段寄存器為CS、DS、SS、ES、FS和GS。,2. 虛地址保護(hù)方式 虛地址保護(hù)方式是支持虛擬存儲器、支持多任務(wù)、支持特權(quán)級與特權(quán)保護(hù)的工作方式。在虛地址保護(hù)方式下,32位微處理器可訪問的物理空間為4GB (232字節(jié)),由輔存和內(nèi)存提供的虛擬空間可達(dá)64TB(246字節(jié))。該方式對如此之大的虛擬存儲空間采取保護(hù)措施,使系統(tǒng)程序和用戶的任務(wù)程序之間以及各任務(wù)程序之間互不干擾地運行。最

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論