ia32 intel64處理器結(jié)構(gòu)與原理_第1頁
ia32 intel64處理器結(jié)構(gòu)與原理_第2頁
ia32 intel64處理器結(jié)構(gòu)與原理_第3頁
ia32 intel64處理器結(jié)構(gòu)與原理_第4頁
ia32 intel64處理器結(jié)構(gòu)與原理_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

計(jì)算機(jī)接口技術(shù)孫志海杭州電子科技大學(xué)

第2章IntelIA-32/Intel64處理器結(jié)構(gòu)與原理2.1.1基本概念1.流水線(Pipeline)把一條指令的操作分成多個(gè)更小的步驟,每個(gè)步驟的操作由專門的電路完成。利用各電路間可并行執(zhí)行的特點(diǎn),讓各個(gè)步驟的執(zhí)行在時(shí)間上重疊起來。取指1譯碼1執(zhí)行1取指2譯碼2執(zhí)行2取指3譯碼3執(zhí)行3取指1譯碼1執(zhí)行1取指2譯碼2執(zhí)行2取指3譯碼3執(zhí)行3流水線執(zhí)行方式2.1IA-32/Intel64處理器新技術(shù)概覽2.1.1基本概念1.流水線產(chǎn)品生產(chǎn)流水線舉例:2.CISC與RISC技術(shù)復(fù)雜指令集計(jì)算機(jī)(CISC)ComplexInstructionSetComputer特點(diǎn):1、指令格式比較復(fù)雜;2、通常采用不等長指令設(shè)計(jì);3、指令的尋址方式豐富;4、絕大多數(shù)指令的執(zhí)行需要多個(gè)時(shí)鐘周期。2.CISC與RISC技術(shù)復(fù)雜指令集計(jì)算機(jī)(CISC)缺點(diǎn):

1、指令系統(tǒng)變得異常龐大;2、組合邏輯電路設(shè)計(jì)更為復(fù)雜;3、復(fù)雜不規(guī)整的指令降低流水線性能;

4、完成同一任務(wù)的指令組合變多,編譯系統(tǒng)優(yōu)化時(shí)分析變得更加困難。精簡指令集計(jì)算機(jī)(RISC)RISC:ReducedInstructionSetComputer通過簡化指令,使得計(jì)算機(jī)的結(jié)構(gòu)變得簡單、合理,從而提高CPU的執(zhí)行速度。

常用的精簡指令集微處理器包括:ARM、AVR、MIPS、PA-RISC、PowerPC等。2.CISC與RISC技術(shù)11精簡指令集計(jì)算機(jī)(RISC)特點(diǎn):1、選用使用頻率高的指令,減少指令條數(shù)。2、指令長度固定,多數(shù)指令在一個(gè)時(shí)鐘周期內(nèi)完成。3、設(shè)計(jì)了大量的寄存器,用于臨時(shí)存放數(shù)據(jù)。4、主要采用硬布線邏輯,較少用或者不用微程序控制。2.CISC與RISC技術(shù)3.高速緩沖存儲(chǔ)器(Cache)CPU主存高速緩沖存儲(chǔ)器Cache的設(shè)立依據(jù)是程序訪問的局部性原理。3.高速緩沖存儲(chǔ)器(Cache)衡量CPU的性能指標(biāo)可以是單位時(shí)間CPU完成的指令數(shù),其計(jì)算公式如下:

CPU性能=CPU的主頻×IPC也可用CPU完成應(yīng)用程序所需的總時(shí)間。其計(jì)算公式如下:

IPC:每時(shí)鐘執(zhí)行的指令條數(shù)。CPI:每條指令的平均時(shí)鐘數(shù)。思考:根據(jù)公式要提高CPU性能,采用什么辦法?CPU時(shí)間=程序的指令數(shù)×CPI時(shí)鐘頻率4.提高處理器的性能(1)問題的分析如何提高主頻:要提高主頻→減少每個(gè)流水級(jí)的執(zhí)行周期→減小每個(gè)流水級(jí)的任務(wù)量→將任務(wù)再分解→增加流水線深度IA-32的流水線級(jí)數(shù)型號(hào)PentiumP6架構(gòu)Pentium4CoreNehalem流水級(jí)數(shù)512-1320~311416主頻MHz662002000~36002667思考:流水線級(jí)數(shù)變多后,有沒有副作用?思考:從圖上可以得到哪些結(jié)論?如果各指令之間不存在相關(guān)性,那么它們在流水線中是可以并行執(zhí)行的,這種指令間潛在的重疊就是指令級(jí)并行(Thread-LevelParallelism,ILP)。1.指令間的相關(guān)性(1)結(jié)構(gòu)相關(guān)所謂結(jié)構(gòu)相關(guān)(也稱為名相關(guān))是指不同指令同時(shí)存取相同的寄存器或存儲(chǔ)器,但這些指令間不存在數(shù)據(jù)流。

在馮·諾依曼存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)和程序放在同一存儲(chǔ)器,如果此時(shí)一條指令要讀或?qū)憯?shù)據(jù),而剛好取指單元要取指令,就出現(xiàn)結(jié)構(gòu)相關(guān)。2.1.2提高處理器指令級(jí)并行性的技術(shù)1.指令間的相關(guān)性(2)數(shù)據(jù)相關(guān)某條指令的操作數(shù)依賴前一條或前幾條指令的運(yùn)行結(jié)果,這就是所謂的數(shù)據(jù)相關(guān)。

①寫后讀相關(guān)(RAW,ReadAfterWrite)A=B+CD=3*A//在數(shù)據(jù)A上寫后讀②讀后寫相關(guān)(WAR,WriteAfterRead)A=B+CB=D*2//在數(shù)據(jù)B上讀后寫②寫后寫相關(guān)(WAW,WriteAfterWrite)A=B+CA=D*2//在數(shù)據(jù)A上寫后寫思考:C語言里的i+=2包含了哪些數(shù)據(jù)相關(guān)?1.指令間的相關(guān)性思考:C語言里的i+=2包含了哪些數(shù)據(jù)相關(guān)?答:i+=2翻譯成匯編是movax,iaddax,2movi,ax這三條語句間存在寫后讀,讀后寫相關(guān)(注意ADDAX,2是先讀AX中的數(shù)去運(yùn)算,然后才是將結(jié)果寫入AX)。1.指令間的相關(guān)性(3)控制相關(guān)控制相關(guān)可以看作是對(duì)指令指針寄存器RAW相關(guān)問題。取指階段需要讀指令指針寄存器,而分支語句會(huì)在執(zhí)行階段計(jì)算出新的轉(zhuǎn)移地址寫入指令指針寄存器,于是當(dāng)分支條件滿足的時(shí)候,就出現(xiàn)下條指令讀指令指針寄存器(取指階段)早于分支語句寫該寄存器(執(zhí)行階段)的情況。

2.超標(biāo)量技術(shù)所謂超標(biāo)量是指處理器中含有多條流水線,每個(gè)時(shí)鐘能夠譯碼、發(fā)射、執(zhí)行多條指令。顯然,超標(biāo)量技術(shù)提高了處理器的IPC,也進(jìn)而減少了理想流水線CPI。在超標(biāo)量流水線中,并行執(zhí)行的流水線條數(shù)稱為超標(biāo)度。從Pentium到IvyBridge處理器的超標(biāo)度為2~4。

IFIDOFEXWBIFIDOFEXWBWBEXOFIDIFI1I2I3I4I5I6I7I8I9IFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWBIFIDOFEXWB思考:超標(biāo)度為幾?3.動(dòng)態(tài)執(zhí)行技術(shù)的使用(P6架構(gòu)開始)A=B+CP=A*2Q=D-E流水1流水2非亂序執(zhí)行演示流水1流水2亂序執(zhí)行演示R=F-7A=B+CP=A*2Q=D-ER=F-7執(zhí)行方向執(zhí)行方向亂序執(zhí)行技術(shù)為了提高指令流的執(zhí)行效率,亂序執(zhí)行核心分析多條指令的數(shù)據(jù)相關(guān)性和資源可用性,然后在不損失數(shù)據(jù)完整性的前提下,采用能充分發(fā)揮多個(gè)處理部件并行工作的指令順序來執(zhí)行。這個(gè)指令順序可能和原始程序的不一樣。3.動(dòng)態(tài)執(zhí)行技術(shù)的使用(P6架構(gòu)開始)分支預(yù)測預(yù)測分支未來的方向,為處理器預(yù)先譯碼分支之后的指令提供依據(jù)

靜態(tài)分支預(yù)測預(yù)測無條件轉(zhuǎn)移指令發(fā)生分支預(yù)測向前分支的條件轉(zhuǎn)移指令不發(fā)生轉(zhuǎn)移預(yù)測向后分支的條件轉(zhuǎn)移指令發(fā)生轉(zhuǎn)移動(dòng)態(tài)分支預(yù)測使用分支目標(biāo)緩沖器BTB記錄分支轉(zhuǎn)移歷史信息BTB中緩存了先前執(zhí)行過的分支語句的指令地址BIA,分支跳轉(zhuǎn)的目的地址BTA,以及分支歷史記錄取指時(shí),同時(shí)檢索L1Cache和BTB如最終分支結(jié)果與預(yù)測相符,則避免了流水線的停頓如最終分支結(jié)果與預(yù)測不符合,那么將刷新BTB的有關(guān)記錄,并進(jìn)行分支誤預(yù)測的恢復(fù)操作3.動(dòng)態(tài)執(zhí)行技術(shù)的使用(P6架構(gòu)開始)推測執(zhí)行在分支預(yù)測基礎(chǔ)上,推測分支路徑,并按推測執(zhí)行。一旦證實(shí)分支預(yù)測正確,已提前建立的“預(yù)測結(jié)果”立即變成“最終結(jié)果”并及時(shí)修改機(jī)器的狀態(tài)。寄存器重命名如果兩條指令只是寄存器名字相重,實(shí)際數(shù)據(jù)并不相關(guān),可以對(duì)其中一條指令的換寄存器來解決。寄存器重命名技術(shù)是在指令被譯碼成微代碼時(shí)將IA指令使用的IA通用寄存器映射成微代碼使用的內(nèi)部寄存器。用這種辦法可以解決寄存器結(jié)構(gòu)相關(guān)的問題。

4.分離Cache與指令配對(duì)數(shù)據(jù)-代碼分離式L1Cache,符合MESI協(xié)議。數(shù)據(jù)-代碼分離式L1Cache能解決流水線的什么問題?指令配對(duì)配對(duì)指令是可以同時(shí)進(jìn)不同流水線的指令配對(duì)的指令必須是簡單指令兩條指令之間不可存在“寫后讀”或“寫后寫”這樣的寄存器相關(guān)性一條指令不能同時(shí)既包含位移量又包含立即數(shù)帶前綴(Jcc指令的OF除外)的指令只能出現(xiàn)在U流水中,因?yàn)镻entium的V流水只執(zhí)行簡單指令浮點(diǎn)運(yùn)算指令不能和任何指令配對(duì)(FCXH除外)下面兩條指令是否可配對(duì)?MOVAX,200MOVCX,AXMOVAX,200MOVAX,412寫后讀寫后寫2.1.3提高處理器數(shù)據(jù)級(jí)并行性的技術(shù)1.多媒體SIMD指令擴(kuò)展技術(shù)使用SIMD指令for(inti=0;i<=MAX;i++)c[i]=a[i]+b[i];128-bitRegistersA[0]B[0]C[0]++++A[1]B[1]C[1]notusednotusednotusednotusednotusednotusednotusednotusednotused128-bitRegistersA[3]A[2]B[3]B[2]C[3]C[2]++A[1]A[0]B[1]B[0]C[1]C[0]++不使用SIMD指令2.融合圖形處理單元GPUGPU在浮點(diǎn)運(yùn)算、并行計(jì)算等計(jì)算方面可以提供數(shù)十倍乃至于上百倍于CPU的性能圖形核心具有12個(gè)新設(shè)計(jì)的EU(執(zhí)行單元),它們包含更大的寄存器文件,用以提高并行性和復(fù)雜著色的執(zhí)行效率EU改進(jìn)了并行分支技術(shù)來提高面對(duì)深度嵌套條件下的并行化的效率圖形核心無論在媒體處理還是3D方面因?yàn)樘峁┝舜罅康墓潭üδ艿挠布С?,使得在相同的熱能耗下,性能得以顯著的提升。2930312.1.4提高處理器線程級(jí)并行性的技術(shù)允許物理上單個(gè)的處理器采用共享執(zhí)行資源的方法同時(shí)執(zhí)行兩個(gè)或更多的分離代碼流(線程)HT技術(shù)由單處理器上的2個(gè)或者多個(gè)邏輯處理器組成,每個(gè)邏輯處理器都有自己的IA-32結(jié)構(gòu)狀態(tài)(AS)每個(gè)邏輯處理器都有自己的IA-32通用寄存器、段寄存器、控制寄存器、調(diào)試寄存器等邏輯處理器共享的資源包括執(zhí)行引擎和系統(tǒng)總線接口ASAS處理器核心支持HT的IA-32處理器2個(gè)邏輯處理器共享一個(gè)核AS=IA-32結(jié)構(gòu)狀態(tài)AS處理器核心傳統(tǒng)多IA-32處理器系統(tǒng)每個(gè)處理器一個(gè)獨(dú)立封裝AS處理器核心1.超線程(Hyper-Threading,HT)技術(shù),SMT通過在一個(gè)物理封裝中包含多個(gè)分離的完整執(zhí)行核來提供硬件多線程能力每個(gè)完整的執(zhí)行核不僅有自己的AS,還擁有自己的執(zhí)行引擎,總線接口與L2Cache。結(jié)構(gòu)上有支持HT技術(shù)的和不支持HT技術(shù)的多核結(jié)構(gòu)核之間有交叉開關(guān)、總線鏈接、環(huán)鏈路多種連接方式眾核(Many-Core)技術(shù)大于32核的CPU采用片上網(wǎng)絡(luò)(NoC)互聯(lián)較多Intel采用雙向環(huán)鏈接其第一個(gè)眾核,61核的MIC2.多核(Multi-Core)技術(shù),CMP

PentiumEEIA-32處理器ASAS執(zhí)行引擎執(zhí)行引擎LocalAPICL2CacheL2Cache總線接口總線接口系統(tǒng)總線ASASLocalAPICLocalAPICLocalAPICPentiumDIA-32處理器ASAS執(zhí)行引擎執(zhí)行引擎LocalAPICLocalAPICL2CacheL2Cache總線接口總線接口系統(tǒng)總線ASAS執(zhí)行引擎執(zhí)行引擎LocalAPICLocalAPICL2Cache總線接口系統(tǒng)總線Core2Duo處理器Intel的多核結(jié)構(gòu)2.5IA-32/Intel64處理器基本執(zhí)行環(huán)境實(shí)地址模式-開機(jī)進(jìn)入的模式

-與8086/8088兼容,但可以處理32位數(shù)據(jù)

-1MB內(nèi)存空間,分段管理,所有程序全在0(核心)級(jí)

-MS-DOS運(yùn)行在此模式下,PC機(jī)開機(jī)首先進(jìn)入的也是該模式

-對(duì)內(nèi)存和程序甚至操作系統(tǒng)沒有任何保護(hù)能力保護(hù)模式-最主要的工作模式

-支持多任務(wù)操作,并保護(hù)每個(gè)任務(wù)的數(shù)據(jù)和程序

-存儲(chǔ)器采用虛擬地址空間、線性地址空間和物理地址空間三種方式來描述,具有存儲(chǔ)保護(hù)功能

-虛擬地址空間64TB(246)

-4級(jí)管理,可以使用分頁或分段技術(shù)管理內(nèi)存

-Windows、Linux操作系統(tǒng)均運(yùn)行在該模式下2.5.1IA-32/Intel64處理器的工作模式虛擬8086模式(V86模式)-懷舊的感覺系統(tǒng)管理模式-“休閑”時(shí)光

-為操作系統(tǒng)和正在運(yùn)行的應(yīng)用程序提供透明的電源管理和系統(tǒng)安全平臺(tái)功能

-進(jìn)入本模式系統(tǒng)將轉(zhuǎn)到一個(gè)獨(dú)立的地址空間運(yùn)行,并保存當(dāng)前程序或任務(wù)的基本環(huán)境-在保護(hù)模式下可以同時(shí)模擬多個(gè)8086處理器的工作比較項(xiàng)目實(shí)地址模式虛擬8086模式內(nèi)存管理分段管理既分段又分頁存儲(chǔ)空間1MB每個(gè)8086程序任務(wù)尋址1MB,總尋址空間4GB多任務(wù)不支持支持,虛擬8086模式是IA-32保護(hù)模式中多任務(wù)的一個(gè)任務(wù)IA-32e模式(支持Intel64Architecture的處理器才有)工作模式的轉(zhuǎn)換1.IA-32的基本數(shù)據(jù)類型

IA32的基本數(shù)據(jù)類型包括Byte,Word,Doubleword,Quadword和DoubleQuadword1)整型數(shù)據(jù)類型包括無符號(hào)數(shù)和有符號(hào)數(shù),其中有符號(hào)數(shù)以2的補(bǔ)碼形式表示,最高位為符號(hào)位,1表示負(fù)數(shù)類型位數(shù)無符號(hào)數(shù)范圍有符號(hào)數(shù)范圍字節(jié)80~255-128~+127字160~65535-32768~雙字320~232-1(4G-1)-231~+231-1四字640~264-1(16T-1)-263~+263-12.5.2IA-32處理器在實(shí)地址模式下的存儲(chǔ)管理2)浮點(diǎn)數(shù)據(jù)類型最高位為符號(hào)位,接下來是有效數(shù)和階碼,有效數(shù)給定了數(shù)的有效位數(shù),決定數(shù)的精度;階碼決定數(shù)據(jù)范圍。類型符號(hào)位數(shù)有效位數(shù)階碼位數(shù)數(shù)據(jù)范圍單精度浮點(diǎn)數(shù)12481.18×10-38~3.40×1038雙精度浮點(diǎn)數(shù)153112.23×10-308~1.79×10308擴(kuò)展精度浮點(diǎn)數(shù)164163.37×10-4932~1.18×1049323)指針數(shù)據(jù)類型指針用于定位存儲(chǔ)單元的地址,包括近指針和遠(yuǎn)指針16位模式下近指針為段內(nèi)16位有效地址遠(yuǎn)指針包括16位段首地址和16位段內(nèi)有效地址32位模式下近指針為段內(nèi)32位有效地址遠(yuǎn)指針包括16位段選擇器和32位段內(nèi)有效地址64位模式下近指針為64位有效地址操作數(shù)是32位時(shí),遠(yuǎn)指針包括16位段選擇器和16位段內(nèi)有效地址操作數(shù)是32位時(shí),遠(yuǎn)指針包括16位段選擇器和32位段內(nèi)有效地址操作數(shù)是64位時(shí),遠(yuǎn)指針包括16位段選擇器和64位段內(nèi)有效地址4)位域(field)數(shù)據(jù)類型是一個(gè)連續(xù)的二進(jìn)制位序列,可以從存儲(chǔ)器任何一個(gè)字節(jié)的任何一位開始??砂?2位數(shù)據(jù)。5)串?dāng)?shù)據(jù)類型是一個(gè)連續(xù)的位、字節(jié)、字或雙字序列,位串可以從存儲(chǔ)器任何一個(gè)字節(jié)的任何一位開始,并可包含232-1位,字節(jié)、字或雙字串可包含232字節(jié)。6)BCD和壓縮BCD數(shù)據(jù)類型用4位無符號(hào)二進(jìn)制數(shù)表示十進(jìn)制的0~9。壓縮BCD每個(gè)字節(jié)包含二位十進(jìn)制數(shù),非壓縮BCD數(shù)每字節(jié)的低4位表示一位十進(jìn)制數(shù),高4位為0。2.存儲(chǔ)單元的地址和內(nèi)容以字節(jié)為單位編址,即一個(gè)字節(jié)數(shù)據(jù)占一個(gè)存儲(chǔ)單元數(shù)據(jù)采用小端存放方式以字、雙字、四字和雙四字為單位存儲(chǔ)數(shù)據(jù)時(shí),分別占相鄰2個(gè)、4個(gè)、8個(gè)和16個(gè)連續(xù)字節(jié)單元,其最低字節(jié)的地址為該數(shù)據(jù)地址。地址一般采用邊界對(duì)齊,如果邊界不對(duì)齊,IA-32會(huì)采用2倍于邊界對(duì)齊時(shí)的總線周期來完成讀寫操作,有些雙四字的操作甚至?xí)鹨话阈员Wo(hù)異常。存儲(chǔ)單元的地址和內(nèi)容12H34H56H78H9AHBCHDEHFFH0000H0001H0002H0003H0004H0005H0006H0007H0000H地址上,字節(jié)數(shù)據(jù)是12H字?jǐn)?shù)據(jù)是3412H雙字?jǐn)?shù)據(jù)是78563412H四字?jǐn)?shù)據(jù)是FFDEBC9A78563412H3.實(shí)地址模式存儲(chǔ)器尋址在此模式下,IA-32可以理解成是一個(gè)可處理32位數(shù)據(jù)的高速的8086。a.存儲(chǔ)器地址的分段

解決16位寄存器表示20位地址的問題段是最大長度為64KB的連續(xù)的內(nèi)存儲(chǔ)器塊物理地址每個(gè)存儲(chǔ)單元的20位實(shí)際地址,有唯一性,訪問主存時(shí)必須用物理地址

邏輯地址每個(gè)存儲(chǔ)單元的地址用兩部分表示:

段基址(段首址的高16位)

偏移量(段內(nèi)某單元相對(duì)段首址的地址差,也稱為有效地址EA)00006417H∶0100H6417H×10H+0100H=64170H+0100H=64270H幾個(gè)不同的邏輯段地址在物理地址上是可重疊的

物理地址=段基址×16+偏移量

書寫形式:段基址:偏移量16位段地址16位段內(nèi)偏移:16位段地址16位段內(nèi)偏移(左移四位)+20位物理地址=2.5.3IA-32/Intel64處理器中的寄存器基本寄存器系統(tǒng)級(jí)寄存器調(diào)試與測試寄存器浮點(diǎn)寄存器通用寄存器指令指針寄存器標(biāo)志寄存器段寄存器控制寄存器系統(tǒng)地址寄存器數(shù)據(jù)寄存器地址指針寄存器變址寄存器AHALBHBLCHCL

DHDLSPBPDISI累加器基址變址計(jì)數(shù)數(shù)據(jù)堆棧指針基址指針目的變址源變址32位1.通用寄存器16位AX

BX

CX

DX

SP

BP

DI

SI16位名稱AX、BX、CX、DX、SP、BP、DI、SI分別是EAX、EBX、ECX、EDX、ESP、EBP、EDI、ESI的低16位AL、BL、CL、DL分別是AX、BX、CX、DX的低八位AH、BH、CH、DH分別是AX、BX、CX、DX的高八位EAX

EBX

ECX

EDX

ESP

EBP

EDI

ESI32位名稱高16位擴(kuò)展1.1通用數(shù)據(jù)寄存器EAX累加器存放操作數(shù)和結(jié)果,乘除運(yùn)算、I/O指令中輸入輸出數(shù)據(jù)。EBX基址寄存器查表轉(zhuǎn)換和間接尋址時(shí)存放基址。ECX計(jì)數(shù)寄存器串操作和循環(huán)中做計(jì)數(shù)EDX數(shù)據(jù)寄存器乘除運(yùn)算、I/O指令中特指端口地址。

可以32位、16位或8位形式訪問,例如,

EAX可使用16位的AX,也可以使用8位的AH、AL1.2通用地址寄存器ESP堆棧指針寄存器,存放棧頂?shù)刂稥BP基址指針寄存器,存放棧段基地址ESI源變址寄存器EDI目的變址寄存器

存放地址的偏移量,也可存放操作數(shù),但只能以32位或16位為單位訪問如:ESI可以使用16位的SI1.364位模式下的通用寄存器2.段寄存器CS代碼段寄存器DS數(shù)據(jù)段寄存器SS堆棧段寄存器ES附加段寄存器FS、GS附加段寄存器段寄存器均為16位的寄存器用于存儲(chǔ)器尋址,存放段的開始地址在64位模式下,F(xiàn)S,GS無效,CS,DS,ES,SS均指向基地址為0的“段”?!褩6螖?shù)據(jù)段附加段代碼段……一個(gè)完整的程序2.1段寄存器介紹2.2段寄存器與段

IA-32的6個(gè)16位的段寄存器,專門存放段基地址:

代碼段存放當(dāng)前程序的指令代碼

數(shù)據(jù)段存放程序涉及的源數(shù)據(jù)或結(jié)果堆棧段是以“先入后出”為原則的數(shù)據(jù)區(qū)

附加段是輔助數(shù)據(jù)區(qū),存放串或其他數(shù)據(jù)用戶可以同時(shí)使用6個(gè)段,段間可以鄰接、部分重疊、重疊或不相鄰,但注意,段的實(shí)體(被實(shí)際使用的段空間)是不能重疊的。段默認(rèn)段寄存器16位偏移32位偏移代碼段CSIPEIP數(shù)據(jù)段DSBX、SI、DI、一個(gè)8或16位數(shù)EAX、EBX、ECX、EDX、EDI、ESI、一個(gè)8或32位數(shù)

堆棧段SSSP或BPESP或EBP附加段ESFSGSDI無默認(rèn)無默認(rèn)EDI(用于串指令)無默認(rèn)無默認(rèn)段寄存器和相應(yīng)存放偏移地址的寄存器之間的默認(rèn)組合2.3關(guān)于堆棧與堆棧段堆棧是內(nèi)存中以字為單元的“先入后出”、最大空間為64KB的存儲(chǔ)區(qū)域,采用自底向上生成堆棧,棧底地址大于棧頂?shù)刂窏^(qū)最高地址-1的單元為棧底,最后進(jìn)棧數(shù)據(jù)所對(duì)應(yīng)的地址單元為棧頂SS指向棧的起始單元(地址最小的單元)SP寄存器動(dòng)態(tài)跟蹤棧頂位置,初始化時(shí)SP的值為堆棧的長度,即指向棧底+2單元將數(shù)據(jù)送入堆棧叫壓棧,從棧中取出數(shù)據(jù)叫彈出,均以字(16位或32位)為單位3.指令指針寄存器EIP指令指針寄存器:即程序計(jì)數(shù)器,指向下一條指令在代碼段中的偏移量16位的IP高16位擴(kuò)展32位指令指針寄存器EIP64位模式下,擴(kuò)展高32位成為64位RIP32位的EIP高32位擴(kuò)展64位指令指針寄存器RIPEFLAGS標(biāo)志寄存器(程序狀態(tài)字寄存器PSW):記錄系統(tǒng)運(yùn)行中的各種狀態(tài)和信息。由各種標(biāo)志位構(gòu)成,反映運(yùn)算后的結(jié)果特征,將影響某些指令(如條件轉(zhuǎn)移指令)的執(zhí)行。4.標(biāo)志寄存器

8086/8088程序狀態(tài)寄存器(標(biāo)志寄存器)

b15b8b7b0

OFDFIFTFSFZFAFPFCF符號(hào)名稱值為“1”的條件

CF進(jìn)位標(biāo)志加/減法時(shí)產(chǎn)生進(jìn)位/借位

OF溢出標(biāo)志運(yùn)算結(jié)果超出有符號(hào)整數(shù)能表示的范圍

ZF零標(biāo)志運(yùn)算結(jié)果為0時(shí)

SF符號(hào)標(biāo)志運(yùn)算結(jié)果的最高位為“1”時(shí)

AF輔助進(jìn)位標(biāo)志運(yùn)算時(shí)半字節(jié)(b3)產(chǎn)生進(jìn)位/借位

PF奇偶標(biāo)志操作結(jié)果低8位為“1”的位數(shù)為偶數(shù)時(shí)

DF方向標(biāo)志串操作中地址指針向低地址方向移動(dòng)

IF中斷允許標(biāo)志允許CPU響應(yīng)可屏蔽中斷請(qǐng)求時(shí)

TF跟蹤標(biāo)志CPU處于單步執(zhí)行的工作方式思考題:以下的幾個(gè)4位十六進(jìn)制數(shù)相加,會(huì)使得8088狀態(tài)寄存器的以下幾位為什么值?CFPFAFZFSFOF8000H8000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論