版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Intel80x86系列微處理器
2.1IntelCPU的發(fā)展4位CPU:4004
45條指令執(zhí)行速度為50kIPS8位CPU:8008、8080執(zhí)行速度達到500KIPS尋址範圍達到64KB
16位CPU:8086、8088、80286
16位CPU,能夠進行16位數(shù)據(jù)的運算和處理尋址範圍達到1MB
32位CPU:80386、80486
準64位CPU:Pentium、PⅡ、PⅢ、P464位CPU:Itanium2.2PC機操作系統(tǒng)的發(fā)展
PC機操作系統(tǒng)主要有以下系列:2.2.1MS-DOS2.2.2桌面Windows系統(tǒng)2.2.3WindowsNT系列2.2.4Linux2.316位CPU及DOS基礎(chǔ)
8086/8088CPU按功能可分成兩大部分:匯流排介面單元BIU(BusInterfaceUnit)執(zhí)行單元EU(ExecutionUnit)8086一次可存取2位元組,比8088的性能要高8088微處理器的內(nèi)部結(jié)構(gòu)如圖所示。(下頁)
記憶體介面C-BUSAHALBHBLCHCLDHDLSPBPSIDIESCSSSDSIP
匯流排介面單元執(zhí)行單元指令執(zhí)行佇列執(zhí)行單元控制系統(tǒng)
A-BUS算術(shù)/邏輯單元標誌寄存器標誌寄存器2.3.1執(zhí)行單元
執(zhí)行單元主要包括標誌寄存器Flags、算術(shù)邏輯單元ALU、通用寄存器。執(zhí)行單元主要實現(xiàn)兩種操作:一是根據(jù)指令進行算術(shù)邏輯等運算二是給出程式要訪問的記憶體單元地址,交給匯流排介面單元
2.3.2匯流排介面單元負責CPU與記憶體和外設(shè)之間的資訊傳送由地址加法器、段寄存器(CS,DS,ES,SS)、指令指針I(yè)P、指令佇列和匯流排控制邏輯組成。在執(zhí)行單元執(zhí)行指令的過程中,匯流排介面單元負責從記憶體指定部分取出指令送至指令佇列中排隊。在執(zhí)行指令時,所需要的記憶體運算元也是由匯流排介面單元從記憶體的指定區(qū)域取出傳送給執(zhí)行單元。
匯流排介面單元中指示器IP的作用及用法保存著下一次將要從記憶體中取出的指令的偏移地址根據(jù)IP的內(nèi)容(16位)和段寄存器CS的內(nèi)容(16位)形成指令的物理地址(20位)根據(jù)該地址從主存中取出指令,送入指令佇列中排隊指令執(zhí)行完畢後IP增加,指向下一條要執(zhí)行的指令。2.3.3寄存器
GS
CS
SS
DS
ES
FS代碼段寄存器堆疊段寄存器數(shù)據(jù)段寄存器附加段寄存器段寄存器1615
CHCL (AH)AX(AL)
EAX
EBX (CH)CX(CL)
ECX(DH)DX(DL)
EDX位08731
AHAL
SP
ESP
AHAL
BP
EBP
AHAL
SI
ESI
DI
EDI
IP
EIP(BH)BX(BL)
FLAGS數(shù)據(jù)寄存器堆疊指針基址指針源變址目的變址指令指針標誌指針寄存器變址寄存器控制寄存器通用寄存器
FLAGS1.段寄存器(CS,DS,ES,SS)
段寄存器用來確定該段在內(nèi)存中的起始地址。包括:代碼段寄存器CS數(shù)據(jù)段寄存器DS堆疊段寄存器SS附加數(shù)據(jù)段寄存器ES
2.指令指針I(yè)P
指令指針I(yè)P總是保存下一次將要執(zhí)行的指令的偏移地址,偏移地址指的是這條指令在代碼段中的位置。在程式運行時,IP的內(nèi)容由CPU自動調(diào)整。3.堆疊指針SP
堆疊指針寄存器SP用於存放當前堆疊段中棧頂?shù)钠频刂贰?/p>
4.數(shù)據(jù)寄存器AX,BX,CX,DX數(shù)據(jù)寄存器通常用來保存運算元或運算結(jié)果等資訊,也有如下專門用途。AX寄存器稱為累加器,它的使用頻度最高,用於算術(shù)、邏輯運算以及與外設(shè)傳送資訊等。BX寄存器稱為基址寄存器,可用於存放記憶體地址。CX寄存器稱為計數(shù)器,可作為迴圈或串操作等指令中的隱含計數(shù)器。DX寄存器稱為數(shù)據(jù)寄存器,可用來存放雙字數(shù)據(jù)的高16位,或存放外設(shè)端口地址。
AX,BX,CX,DX都是16位的寄存器,每一個又可以分為高8位和低8位來使用。例如:AX的值為0E9FH,那麼,AH=0EH,AL=9FH
。15870AXAHALBXBHBLCXCHCLDXDHDL5.基址寄存器BP
基址寄存器可用來保存運算元或運算結(jié)果等資訊也用於存放某一存儲單元的偏移地址,此時多用於對堆疊段中數(shù)據(jù)的非順序存取BX寄存器也是基址寄存器。
6.變址寄存器SI,DISI是源變址寄存器,DI是目標變址寄存器可用來保存運算元或運算結(jié)果等資訊也用於存放某一存儲單元的偏移地址在數(shù)據(jù)塊操作中,SI和DI分別指向源地址和目標地址。
7.標誌寄存器Flags包含9個標誌位,表示CPU所處狀態(tài)資訊及運算結(jié)果的特徵,在執(zhí)行指令的過程中,根據(jù)指令執(zhí)行的結(jié)果自動改變這些標誌位,在程式中可以取出這些標誌位標誌寄存器如下圖
1514131211109876543210FlagsOFDFIFTFSFZFAFPFCF標誌寄存器輔助進位標誌AF:在字操作時若低位位元組向高位位元組有進位或借位時,則AF=1,否則AF=0。進位標誌CF:當結(jié)果的最高位產(chǎn)生一個進位或借位時,CF=1,否則CF=0。在移位或迴圈移位指令中,會把運算元的最高位(左移時)或最低位(右移時)移入CF中。標誌寄存器溢出標誌OF:有符號數(shù)運算時,當其運算結(jié)果超出了8位或16位有符號數(shù)所能表達的範圍時,將產(chǎn)生溢出,置OF為1,否則置OF=0。符號標誌SF:它與運算結(jié)果的最高位相同。奇偶標誌PF:當執(zhí)行結(jié)果的低8位中1的個數(shù)為奇數(shù)時,PF為0;否則為1。標誌寄存器零標誌:當運算結(jié)果為零時,ZF為1;否則為0。方向標誌DF:在字串操作指令中,當DF=0時,串操作為自動增址;當DF=1時,串操作為自動減址。標誌寄存器中斷允許標誌:當IF=1時,允許CPU接收外部中斷請求,此時為“開中斷”狀態(tài)。當IF=0時,則遮罩外部中斷請求,此時為“關(guān)中斷”狀態(tài)。單步標誌TF:當TF=1時,CPU進入單步方式,在每條指令執(zhí)行以後產(chǎn)生一個內(nèi)部中斷(單步中斷)。當TF=0時,CPU執(zhí)行指令後不產(chǎn)生單步中斷。
2.3.4記憶體的分段CPU在確定一個記憶體單元的地址時,用邏輯地址來描述邏輯地址分為兩部分:段首址和偏移,邏輯地址的格式表示為:段首址:偏移
由邏輯地址“段首址:偏移”轉(zhuǎn)換為物理地址的公式為物理地址
段首址
16
偏移
段基址
偏移如,求出317FH:2B83H的物理地址的過程為:段首址
317FH偏移
2B83H段基址
317FH
16
317FH
10H
317F0H物理地址
段基址
偏移
317F0H
2B83H
34373H2.3.5DOS的記憶體佈局
DOS操作系統(tǒng)運行於實模式中,CPU在實模式下的尋址範圍只有1MB。
系統(tǒng)硬體使用的記憶體位於地址區(qū)域的高端,範圍從A0000H~FFFFFH,共384KB,其中有用於顯示的視頻緩衝區(qū)和BIOS程式空間。DOS系統(tǒng)和程式使用16位“段首址:偏移”的格式,只能使用00000H~9FFFFH共640KB,這就是有名的“640KB”限制。突破限制的方法一種技術(shù)是使用高端記憶體區(qū)HMA,它利用了80286以上CPU的A20地址線。第二種方法師利用UMB/EMS/XMS技術(shù),能夠使程式使用到更多的物理記憶體。1.UMB使用的映射是固定的2.EMS將高於1MB的各個16KB記憶體塊進行編號,程式可以設(shè)置一個號碼,把對應的記憶體塊映射到地址上。如果想使用另外一個16KB記憶體塊,則設(shè)置一個新的號碼。突破限制的方法(續(xù))UMB/EMS技術(shù)只能在80386及以上的CPU才能實現(xiàn)。3.XMS技術(shù)能夠在80286及以上的CPU中實現(xiàn)。它的原理是在640KB記憶體中開闢一個緩衝區(qū),再調(diào)用XMS功能將緩衝區(qū)中的內(nèi)容傳送到高於1MB的記憶體中去,也可以將高於1MB的記憶體傳送到緩衝區(qū)中。
2.3.6I/O地址空間CPU需要和外部設(shè)備之間執(zhí)行輸入/輸出操作。每個外部設(shè)備的介面中都有一組寄存器,用來存放要和CPU相交換的數(shù)據(jù)、狀態(tài)和命令資訊。每個寄存器都有一個端口地址,由這些端口地址組成了I/O地址空間。
I/O地址空間為64KB,尋址範圍為0000H~FFFFH。
2.432位CPU及Windows基礎(chǔ)2.4.1三種工作模式2.4.2寄存器2.4.3Windows應用程式的記憶體佈局2.4.4Windows的保護機制
2.4.1三種工作模式
80386處理器有三種工作模式:實模式、保護模式和虛擬86模式。
<1>實模式
CPU複位或加電的時候以實模式啟動,處理器以實模式工作。所有的段都是可以讀、寫和可執(zhí)行的沒有特權(quán)級的概念,所有的指令都工作在最高的特權(quán)級。不支持硬體上的多任務切換,所有的指令都在同一個環(huán)境下執(zhí)行。
<2>保護模式在保護模式下的時候,80386提供了多任務、記憶體分段分頁管理和特權(quán)級保護等功能。段的大小可以設(shè)置為4GB,段內(nèi)的偏移量為32位。在編程時不必考慮記憶體的分段問題。特權(quán)級保護,將應用程式和操作系統(tǒng)隔離起來。支持虛擬記憶體。支持多任務。<3>虛擬86模式
以任務形式在保護模式下執(zhí)行的;在虛擬86模式下,80386支持任務切換和記憶體分頁。在Windows操作系統(tǒng)中,有一部分程式專門用來管理虛擬86模式的任務,稱為虛擬86管理程式。它既提供了一個環(huán)境,允許DOS及其程式在保護模式下運行,又對DOS及其程式的行為進行限制。2.4.2寄存器32位CPU支持的寄存器有以下幾種:1.通用32位寄存器2.標誌寄存器3.EIP和ESP
4.CS,DS,ES,SS,F(xiàn)S,GS1.通用32位寄存器CPU中有8個32位寄存器。它們主要用於算術(shù)運算、邏輯運算以及對內(nèi)存運算元的尋址。3216150EAXAXEBXBXECXCXEDXDXESISIEDIDIEBPBPESPSP2.標誌寄存器
標誌寄存器EFLAGS也擴展為32位。31~191817161514131211109876543210EFLAGS00..00VMRFNTIOPLOFDFIFTFSFZFAFPFCF
86模式位VM:此位為1時,表示當前CPU正工作在V86模式下。此位為0,表示當前CPU工作在實模式或保護模式下。嵌套任務位NT:若當前的任務嵌套在其他任務中,此位為1,否則為0。恢復位RF:與程式調(diào)試有關(guān)的一個控制位。I/O域IOPL:IOPL占2位,取值為0,1,2,3。它規(guī)定了那些特權(quán)級的程式可以執(zhí)行I/O指令。
3.指令指針寄存器EIP和堆疊指針寄存器ESP指令指針寄存器總是保存下一次將要執(zhí)行的指令的偏移地址,偏移地址指這條指令在代碼段中的位置。堆疊指針寄存器ESP用於存放當前堆疊段中棧頂?shù)钠频刂贰IP和ESP都32位寄存器,它們的低16位分別是IP和SP。3116150EIPIPESPSP
4.段寄存器CS,DS,ES,SS,F(xiàn)S,GS32位CPU有6個段寄存器,分別為CS,DS,ES,SS,F(xiàn)S,GS,比16位CPU增加了FS、GS兩個段寄存器。這些段寄存器也是16位的,在實模式下,它們的用法和16位CPU相同。在實模式和V86模式下,段寄存器的內(nèi)容是20位段基址的高16位。在保護模式下,段寄存器中的內(nèi)容是一個選擇符,用於在段描述符表中選擇段描述符的選擇符。2.4.3Windows應用程式的記憶體佈局1.虛擬記憶體2.“平坦”記憶體模式3.段寄存器4.記憶體佈局
1.虛擬記憶體
Windows系統(tǒng)一般在硬碟上建立一個交換檔用做虛擬記憶體。在讀寫這個記憶體地址時,CPU要通知操作系統(tǒng)將交換檔的內(nèi)容讀入物理記憶體。如果記憶體緊張,操作系統(tǒng)還可以將物理記憶體的內(nèi)容寫到交換檔中,以後程式在訪問這個地址時,要從交換檔中讀入。
2.“平坦”記憶體模式程式員在編程時可以使用的記憶體空間最大是4GB,而不必考慮記憶體的分段問題。
3.段寄存器
在Windows系統(tǒng)中,段寄存器仍然是16位的。他們內(nèi)容就不再像實模式那樣存放段首址的內(nèi)容,而是存放選擇符。選擇符指向一個64位的描述符,在描述符中規(guī)定了段的基地址、長度、類型、特權(quán)級等資訊。例如,在一個程式的運行過程中,各個段寄存器和其他寄存器的值為:
3.段寄存器(續(xù))CS:EIP=001B:3017FFD2SS:ESP=0023:0012F16CEAX=00000002EBX=00E903C8ECX=00E903C8EDX=00000DE4ESI=0012F736EDI=00000DE4EBP=0012F180EFL=00000202DS=0023ES=0023FS=003BGS=0000再觀察各個段的基地址和長度資訊::gdt001BSel.Type Base LimitDPL Attributes001BCode32 00000000FFFFFFFF3 PRE:gdt0023Sel.Type Base Limit DPL Attributes0023Data32 00000000FFFFFFFF3 PRW3.段寄存器(續(xù))程式中,CS=001BH,001BH是一個索引。以這個索引為依據(jù)到GDT表中去找這個段的描述符,再從描述符中獲得它的基地址為00000000H,長度為FFFFFFFFH。這個段的屬性為RE,可讀,但不可寫。DS=ES=SS=0023H,數(shù)據(jù)段和堆疊段是同一個段。數(shù)據(jù)段的屬性為RW,可讀可寫,但不可執(zhí)行。代碼段和數(shù)據(jù)/堆疊段的空間是統(tǒng)一的,都是00000000H~FFFFFFFFH。
在這個地址空間中,一部分用來存放程式,一部分作為數(shù)據(jù)區(qū),還有一部分作為堆疊來使用,且不重複。
4.記憶體佈局Windows系統(tǒng)將4GB記憶體地址空間分為兩個部分:用戶地址空間和系統(tǒng)地址空間,這兩個部分各占2GB。對於每一個任務,它的用戶地址空間是獨有的。而所有的任務共用系統(tǒng)地址空間,操作系統(tǒng)內(nèi)核及各種設(shè)備的驅(qū)動程式都放在系統(tǒng)地址空間中。舉例說明各個任務的獨立地址空間程式清單:task1.c(任務獨立地址空間)結(jié)果:main=0x00401005&random=0x0042ADB0,random=0&random=0x0042ADB0,random=27443程式清單:task2.c(任務獨立地址空間)結(jié)果:main=0x00401005&ticks=0x00428C3C,ticks=0&ticks=0x00428C3C,ticks=11553031舉例說明各個任務的獨立地址空間(續(xù))執(zhí)行下麵的命令可以編譯task1.c,task2.c,生成task1.exe,task2.exe檔。cltask1.ccltask2.ctask1.c程式中設(shè)置了一個random全局變數(shù),用於存放獲得的亂數(shù),每次運行時這個數(shù)字是不同的。task2.c程式中設(shè)置了一個ticks全局變數(shù),用於存放Windows啟動後已運行的毫秒數(shù),這個數(shù)字是不斷變化的。舉例說明各個任務的獨立地址空間(續(xù)在“開始→運行”中輸入運行c:\asm\task1.exe和c:\asm\task2.exe各兩次,一共產(chǎn)生了4個任務。自己驗證。對task1.exe的兩個任務來說,邏輯地址00408A10H表示的記憶體單元在兩個任務中的值並不相同。這就意味著在Windows系統(tǒng)中,每個任務都有它自己獨立的邏輯地址空間。對task2.exe的兩個任務來說,邏輯地址004068F0H表示的記憶體單元在兩個任務中的值也不相同,它們被映
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:南疆地區(qū)健康信息傳播網(wǎng)絡建模及干預策略研究
- 南匯工商行政管理志2025年版編纂與市場動態(tài)跟蹤合同4篇
- 2025年樹木種植技術(shù)指導與培訓服務合同范本3篇
- 二零二五年度無人零售鋪面轉(zhuǎn)租合同12篇
- 2025年度苗木種植與鄉(xiāng)村旅游融合發(fā)展合同4篇
- 2025年度門禁系統(tǒng)與訪客預約系統(tǒng)對接合同4篇
- 2025年度個人教育貸款抵押合同規(guī)范文本2篇
- 二零二五美容院加盟店開業(yè)籌備及營銷策劃合同3篇
- 2025年江蘇灌南騰升投資有限公司招聘筆試參考題庫含答案解析
- 婚慶餐飲與精細化服務
- 2025-2030年中國陶瓷電容器行業(yè)運營狀況與發(fā)展前景分析報告
- 2025年山西國際能源集團限公司所屬企業(yè)招聘43人高頻重點提升(共500題)附帶答案詳解
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學答案
- 音樂作品錄制許可
- 江蘇省無錫市2023-2024學年高三上學期期終教學質(zhì)量調(diào)研測試語文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語試卷(含答案解析)
- 開題報告:AIGC背景下大學英語教學設(shè)計重構(gòu)研究
- 師德標兵先進事跡材料師德標兵個人主要事跡
- 連鎖商務酒店述職報告
- 2024年山東省煙臺市初中學業(yè)水平考試地理試卷含答案
評論
0/150
提交評論