




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Intel80x86系列微處理器
2.1IntelCPU的發(fā)展4位CPU:4004
45條指令執(zhí)行速度為50kIPS8位CPU:8008、8080執(zhí)行速度達(dá)到500KIPS尋址範(fàn)圍達(dá)到64KB
16位CPU:8086、8088、80286
16位CPU,能夠進(jìn)行16位數(shù)據(jù)的運(yùn)算和處理尋址範(fàn)圍達(dá)到1MB
32位CPU:80386、80486
準(zhǔn)64位CPU:Pentium、PⅡ、PⅢ、P464位CPU:Itanium2.2PC機(jī)操作系統(tǒng)的發(fā)展
PC機(jī)操作系統(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)如圖所示。(下頁(yè))
記憶體介面C-BUSAHALBHBLCHCLDHDLSPBPSIDIESCSSSDSIP
匯流排介面單元執(zhí)行單元指令執(zhí)行佇列執(zhí)行單元控制系統(tǒng)
A-BUS算術(shù)/邏輯單元標(biāo)誌寄存器標(biāo)誌寄存器2.3.1執(zhí)行單元
執(zhí)行單元主要包括標(biāo)誌寄存器Flags、算術(shù)邏輯單元ALU、通用寄存器。執(zhí)行單元主要實(shí)現(xiàn)兩種操作:一是根據(jù)指令進(jìn)行算術(shù)邏輯等運(yùn)算二是給出程式要訪(fǎng)問(wèn)的記憶體單元地址,交給匯流排介面單元
2.3.2匯流排介面單元負(fù)責(zé)CPU與記憶體和外設(shè)之間的資訊傳送由地址加法器、段寄存器(CS,DS,ES,SS)、指令指針I(yè)P、指令佇列和匯流排控制邏輯組成。在執(zhí)行單元執(zhí)行指令的過(guò)程中,匯流排介面單元負(fù)責(zé)從記憶體指定部分取出指令送至指令佇列中排隊(duì)。在執(zhí)行指令時(shí),所需要的記憶體運(yùn)算元也是由匯流排介面單元從記憶體的指定區(qū)域取出傳送給執(zhí)行單元。
匯流排介面單元中指示器IP的作用及用法保存著下一次將要從記憶體中取出的指令的偏移地址根據(jù)IP的內(nèi)容(16位)和段寄存器CS的內(nèi)容(16位)形成指令的物理地址(20位)根據(jù)該地址從主存中取出指令,送入指令佇列中排隊(duì)指令執(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ù)寄存器堆疊指針基址指針源變址目的變址指令指針標(biāo)誌指針寄存器變址寄存器控制寄存器通用寄存器
FLAGS1.段寄存器(CS,DS,ES,SS)
段寄存器用來(lái)確定該段在內(nèi)存中的起始地址。包括:代碼段寄存器CS數(shù)據(jù)段寄存器DS堆疊段寄存器SS附加數(shù)據(jù)段寄存器ES
2.指令指針I(yè)P
指令指針I(yè)P總是保存下一次將要執(zhí)行的指令的偏移地址,偏移地址指的是這條指令在代碼段中的位置。在程式運(yùn)行時(shí),IP的內(nèi)容由CPU自動(dòng)調(diào)整。3.堆疊指針SP
堆疊指針寄存器SP用於存放當(dāng)前堆疊段中棧頂?shù)钠频刂贰?/p>
4.?dāng)?shù)據(jù)寄存器AX,BX,CX,DX數(shù)據(jù)寄存器通常用來(lái)保存運(yùn)算元或運(yùn)算結(jié)果等資訊,也有如下專(zhuān)門(mén)用途。AX寄存器稱(chēng)為累加器,它的使用頻度最高,用於算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送資訊等。BX寄存器稱(chēng)為基址寄存器,可用於存放記憶體地址。CX寄存器稱(chēng)為計(jì)數(shù)器,可作為迴圈或串操作等指令中的隱含計(jì)數(shù)器。DX寄存器稱(chēng)為數(shù)據(jù)寄存器,可用來(lái)存放雙字?jǐn)?shù)據(jù)的高16位,或存放外設(shè)端口地址。
AX,BX,CX,DX都是16位的寄存器,每一個(gè)又可以分為高8位和低8位來(lái)使用。例如:AX的值為0E9FH,那麼,AH=0EH,AL=9FH
。15870AXAHALBXBHBLCXCHCLDXDHDL5.基址寄存器BP
基址寄存器可用來(lái)保存運(yùn)算元或運(yùn)算結(jié)果等資訊也用於存放某一存儲(chǔ)單元的偏移地址,此時(shí)多用於對(duì)堆疊段中數(shù)據(jù)的非順序存取BX寄存器也是基址寄存器。
6.變址寄存器SI,DISI是源變址寄存器,DI是目標(biāo)變址寄存器可用來(lái)保存運(yùn)算元或運(yùn)算結(jié)果等資訊也用於存放某一存儲(chǔ)單元的偏移地址在數(shù)據(jù)塊操作中,SI和DI分別指向源地址和目標(biāo)地址。
7.標(biāo)誌寄存器Flags包含9個(gè)標(biāo)誌位,表示CPU所處狀態(tài)資訊及運(yùn)算結(jié)果的特徵,在執(zhí)行指令的過(guò)程中,根據(jù)指令執(zhí)行的結(jié)果自動(dòng)改變這些標(biāo)誌位,在程式中可以取出這些標(biāo)誌位標(biāo)誌寄存器如下圖
1514131211109876543210FlagsOFDFIFTFSFZFAFPFCF標(biāo)誌寄存器輔助進(jìn)位標(biāo)誌AF:在字操作時(shí)若低位位元組向高位位元組有進(jìn)位或借位時(shí),則AF=1,否則AF=0。進(jìn)位標(biāo)誌CF:當(dāng)結(jié)果的最高位產(chǎn)生一個(gè)進(jìn)位或借位時(shí),CF=1,否則CF=0。在移位或迴圈移位指令中,會(huì)把運(yùn)算元的最高位(左移時(shí))或最低位(右移時(shí))移入CF中。標(biāo)誌寄存器溢出標(biāo)誌OF:有符號(hào)數(shù)運(yùn)算時(shí),當(dāng)其運(yùn)算結(jié)果超出了8位或16位有符號(hào)數(shù)所能表達(dá)的範(fàn)圍時(shí),將產(chǎn)生溢出,置OF為1,否則置OF=0。符號(hào)標(biāo)誌SF:它與運(yùn)算結(jié)果的最高位相同。奇偶標(biāo)誌PF:當(dāng)執(zhí)行結(jié)果的低8位中1的個(gè)數(shù)為奇數(shù)時(shí),PF為0;否則為1。標(biāo)誌寄存器零標(biāo)誌:當(dāng)運(yùn)算結(jié)果為零時(shí),ZF為1;否則為0。方向標(biāo)誌DF:在字串操作指令中,當(dāng)DF=0時(shí),串操作為自動(dòng)增址;當(dāng)DF=1時(shí),串操作為自動(dòng)減址。標(biāo)誌寄存器中斷允許標(biāo)誌:當(dāng)IF=1時(shí),允許CPU接收外部中斷請(qǐng)求,此時(shí)為“開(kāi)中斷”狀態(tài)。當(dāng)IF=0時(shí),則遮罩外部中斷請(qǐng)求,此時(shí)為“關(guān)中斷”狀態(tài)。單步標(biāo)誌TF:當(dāng)TF=1時(shí),CPU進(jìn)入單步方式,在每條指令執(zhí)行以後產(chǎn)生一個(gè)內(nèi)部中斷(單步中斷)。當(dāng)TF=0時(shí),CPU執(zhí)行指令後不產(chǎn)生單步中斷。
2.3.4記憶體的分段CPU在確定一個(gè)記憶體單元的地址時(shí),用邏輯地址來(lái)描述邏輯地址分為兩部分:段首址和偏移,邏輯地址的格式表示為:段首址:偏移
由邏輯地址“段首址:偏移”轉(zhuǎn)換為物理地址的公式為物理地址
段首址
16
偏移
段基址
偏移如,求出317FH:2B83H的物理地址的過(guò)程為:段首址
317FH偏移
2B83H段基址
317FH
16
317FH
10H
317F0H物理地址
段基址
偏移
317F0H
2B83H
34373H2.3.5DOS的記憶體佈局
DOS操作系統(tǒng)運(yùn)行於實(shí)模式中,CPU在實(shí)模式下的尋址範(fàn)圍只有1MB。
系統(tǒng)硬體使用的記憶體位於地址區(qū)域的高端,範(fàn)圍從A0000H~FFFFFH,共384KB,其中有用於顯示的視頻緩衝區(qū)和BIOS程式空間。DOS系統(tǒng)和程式使用16位“段首址:偏移”的格式,只能使用00000H~9FFFFH共640KB,這就是有名的“640KB”限制。突破限制的方法一種技術(shù)是使用高端記憶體區(qū)HMA,它利用了80286以上CPU的A20地址線(xiàn)。第二種方法師利用UMB/EMS/XMS技術(shù),能夠使程式使用到更多的物理記憶體。1.UMB使用的映射是固定的2.EMS將高於1MB的各個(gè)16KB記憶體塊進(jìn)行編號(hào),程式可以設(shè)置一個(gè)號(hào)碼,把對(duì)應(yīng)的記憶體塊映射到地址上。如果想使用另外一個(gè)16KB記憶體塊,則設(shè)置一個(gè)新的號(hào)碼。突破限制的方法(續(xù))UMB/EMS技術(shù)只能在80386及以上的CPU才能實(shí)現(xiàn)。3.XMS技術(shù)能夠在80286及以上的CPU中實(shí)現(xiàn)。它的原理是在640KB記憶體中開(kāi)闢一個(gè)緩衝區(qū),再調(diào)用XMS功能將緩衝區(qū)中的內(nèi)容傳送到高於1MB的記憶體中去,也可以將高於1MB的記憶體傳送到緩衝區(qū)中。
2.3.6I/O地址空間CPU需要和外部設(shè)備之間執(zhí)行輸入/輸出操作。每個(gè)外部設(shè)備的介面中都有一組寄存器,用來(lái)存放要和CPU相交換的數(shù)據(jù)、狀態(tài)和命令資訊。每個(gè)寄存器都有一個(gè)端口地址,由這些端口地址組成了I/O地址空間。
I/O地址空間為64KB,尋址範(fàn)圍為0000H~FFFFH。
2.432位CPU及Windows基礎(chǔ)2.4.1三種工作模式2.4.2寄存器2.4.3Windows應(yīng)用程式的記憶體佈局2.4.4Windows的保護(hù)機(jī)制
2.4.1三種工作模式
80386處理器有三種工作模式:實(shí)模式、保護(hù)模式和虛擬86模式。
<1>實(shí)模式
CPU複位或加電的時(shí)候以實(shí)模式啟動(dòng),處理器以實(shí)模式工作。所有的段都是可以讀、寫(xiě)和可執(zhí)行的沒(méi)有特權(quán)級(jí)的概念,所有的指令都工作在最高的特權(quán)級(jí)。不支持硬體上的多任務(wù)切換,所有的指令都在同一個(gè)環(huán)境下執(zhí)行。
<2>保護(hù)模式在保護(hù)模式下的時(shí)候,80386提供了多任務(wù)、記憶體分段分頁(yè)管理和特權(quán)級(jí)保護(hù)等功能。段的大小可以設(shè)置為4GB,段內(nèi)的偏移量為32位。在編程時(shí)不必考慮記憶體的分段問(wèn)題。特權(quán)級(jí)保護(hù),將應(yīng)用程式和操作系統(tǒng)隔離起來(lái)。支持虛擬記憶體。支持多任務(wù)。<3>虛擬86模式
以任務(wù)形式在保護(hù)模式下執(zhí)行的;在虛擬86模式下,80386支持任務(wù)切換和記憶體分頁(yè)。在Windows操作系統(tǒng)中,有一部分程式專(zhuān)門(mén)用來(lái)管理虛擬86模式的任務(wù),稱(chēng)為虛擬86管理程式。它既提供了一個(gè)環(huán)境,允許DOS及其程式在保護(hù)模式下運(yùn)行,又對(duì)DOS及其程式的行為進(jìn)行限制。2.4.2寄存器32位CPU支持的寄存器有以下幾種:1.通用32位寄存器2.標(biāo)誌寄存器3.EIP和ESP
4.CS,DS,ES,SS,F(xiàn)S,GS1.通用32位寄存器CPU中有8個(gè)32位寄存器。它們主要用於算術(shù)運(yùn)算、邏輯運(yùn)算以及對(duì)內(nèi)存運(yùn)算元的尋址。3216150EAXAXEBXBXECXCXEDXDXESISIEDIDIEBPBPESPSP2.標(biāo)誌寄存器
標(biāo)誌寄存器EFLAGS也擴(kuò)展為32位。31~191817161514131211109876543210EFLAGS00..00VMRFNTIOPLOFDFIFTFSFZFAFPFCF
86模式位VM:此位為1時(shí),表示當(dāng)前CPU正工作在V86模式下。此位為0,表示當(dāng)前CPU工作在實(shí)模式或保護(hù)模式下。嵌套任務(wù)位NT:若當(dāng)前的任務(wù)嵌套在其他任務(wù)中,此位為1,否則為0?;謴?fù)位RF:與程式調(diào)試有關(guān)的一個(gè)控制位。I/O域IOPL:IOPL占2位,取值為0,1,2,3。它規(guī)定了那些特權(quán)級(jí)的程式可以執(zhí)行I/O指令。
3.指令指針寄存器EIP和堆疊指針寄存器ESP指令指針寄存器總是保存下一次將要執(zhí)行的指令的偏移地址,偏移地址指這條指令在代碼段中的位置。堆疊指針寄存器ESP用於存放當(dāng)前堆疊段中棧頂?shù)钠频刂贰IP和ESP都32位寄存器,它們的低16位分別是IP和SP。3116150EIPIPESPSP
4.段寄存器CS,DS,ES,SS,F(xiàn)S,GS32位CPU有6個(gè)段寄存器,分別為CS,DS,ES,SS,F(xiàn)S,GS,比16位CPU增加了FS、GS兩個(gè)段寄存器。這些段寄存器也是16位的,在實(shí)模式下,它們的用法和16位CPU相同。在實(shí)模式和V86模式下,段寄存器的內(nèi)容是20位段基址的高16位。在保護(hù)模式下,段寄存器中的內(nèi)容是一個(gè)選擇符,用於在段描述符表中選擇段描述符的選擇符。2.4.3Windows應(yīng)用程式的記憶體佈局1.虛擬記憶體2.“平坦”記憶體模式3.段寄存器4.記憶體佈局
1.虛擬記憶體
Windows系統(tǒng)一般在硬碟上建立一個(gè)交換檔用做虛擬記憶體。在讀寫(xiě)這個(gè)記憶體地址時(shí),CPU要通知操作系統(tǒng)將交換檔的內(nèi)容讀入物理記憶體。如果記憶體緊張,操作系統(tǒng)還可以將物理記憶體的內(nèi)容寫(xiě)到交換檔中,以後程式在訪(fǎng)問(wèn)這個(gè)地址時(shí),要從交換檔中讀入。
2.“平坦”記憶體模式程式員在編程時(shí)可以使用的記憶體空間最大是4GB,而不必考慮記憶體的分段問(wèn)題。
3.段寄存器
在Windows系統(tǒng)中,段寄存器仍然是16位的。他們內(nèi)容就不再像實(shí)模式那樣存放段首址的內(nèi)容,而是存放選擇符。選擇符指向一個(gè)64位的描述符,在描述符中規(guī)定了段的基地址、長(zhǎng)度、類(lèi)型、特權(quán)級(jí)等資訊。例如,在一個(gè)程式的運(yùn)行過(guò)程中,各個(gè)段寄存器和其他寄存器的值為:
3.段寄存器(續(xù))CS:EIP=001B:3017FFD2SS:ESP=0023:0012F16CEAX=00000002EBX=00E903C8ECX=00E903C8EDX=00000DE4ESI=0012F736EDI=00000DE4EBP=0012F180EFL=00000202DS=0023ES=0023FS=003BGS=0000再觀察各個(gè)段的基地址和長(zhǎng)度資訊::gdt001BSel.Type Base LimitDPL Attributes001BCode32 00000000FFFFFFFF3 PRE:gdt0023Sel.Type Base Limit DPL Attributes0023Data32 00000000FFFFFFFF3 PRW3.段寄存器(續(xù))程式中,CS=001BH,001BH是一個(gè)索引。以這個(gè)索引為依據(jù)到GDT表中去找這個(gè)段的描述符,再?gòu)拿枋龇蝎@得它的基地址為00000000H,長(zhǎng)度為FFFFFFFFH。這個(gè)段的屬性為RE,可讀,但不可寫(xiě)。DS=ES=SS=0023H,數(shù)據(jù)段和堆疊段是同一個(gè)段。數(shù)據(jù)段的屬性為RW,可讀可寫(xiě),但不可執(zhí)行。代碼段和數(shù)據(jù)/堆疊段的空間是統(tǒng)一的,都是00000000H~FFFFFFFFH。
在這個(gè)地址空間中,一部分用來(lái)存放程式,一部分作為數(shù)據(jù)區(qū),還有一部分作為堆疊來(lái)使用,且不重複。
4.記憶體佈局Windows系統(tǒng)將4GB記憶體地址空間分為兩個(gè)部分:用戶(hù)地址空間和系統(tǒng)地址空間,這兩個(gè)部分各占2GB。對(duì)於每一個(gè)任務(wù),它的用戶(hù)地址空間是獨(dú)有的。而所有的任務(wù)共用系統(tǒng)地址空間,操作系統(tǒng)內(nèi)核及各種設(shè)備的驅(qū)動(dòng)程式都放在系統(tǒng)地址空間中。舉例說(shuō)明各個(gè)任務(wù)的獨(dú)立地址空間程式清單:task1.c(任務(wù)獨(dú)立地址空間)結(jié)果:main=0x00401005&random=0x0042ADB0,random=0&random=0x0042ADB0,random=27443程式清單:task2.c(任務(wù)獨(dú)立地址空間)結(jié)果:main=0x00401005&ticks=0x00428C3C,ticks=0&ticks=0x00428C3C,ticks=11553031舉例說(shuō)明各個(gè)任務(wù)的獨(dú)立地址空間(續(xù))執(zhí)行下麵的命令可以編譯task1.c,task2.c,生成task1.exe,task2.exe檔。cltask1.ccltask2.ctask1.c程式中設(shè)置了一個(gè)random全局變數(shù),用於存放獲得的亂數(shù),每次運(yùn)行時(shí)這個(gè)數(shù)字是不同的。task2.c程式中設(shè)置了一個(gè)ticks全局變數(shù),用於存放Windows啟動(dòng)後已運(yùn)行的毫秒數(shù),這個(gè)數(shù)字是不斷變化的。舉例說(shuō)明各個(gè)任務(wù)的獨(dú)立地址空間(續(xù)在“開(kāi)始→運(yùn)行”中輸入運(yùn)行c:\asm\task1.exe和c:\asm\task2.exe各兩次,一共產(chǎn)生了4個(gè)任務(wù)。自己驗(yàn)證。對(duì)task1.exe的兩個(gè)任務(wù)來(lái)說(shuō),邏輯地址00408A10H表示的記憶體單元在兩個(gè)任務(wù)中的值並不相同。這就意味著在Windows系統(tǒng)中,每個(gè)任務(wù)都有它自己獨(dú)立的邏輯地址空間。對(duì)task2.exe的兩個(gè)任務(wù)來(lái)說(shuō),邏輯地址004068F0H表示的記憶體單元在兩個(gè)任務(wù)中的值也不相同,它們被映
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年制造業(yè)綠色供應(yīng)鏈管理標(biāo)準(zhǔn)化與推廣研究報(bào)告
- 四川土壤試題及答案
- 臺(tái)風(fēng)來(lái)了題目及答案
- 提高自信的測(cè)試題及答案
- 養(yǎng)護(hù)資產(chǎn)管理辦法
- 養(yǎng)魚(yú)基地管理辦法
- 內(nèi)審員管理辦法
- 內(nèi)網(wǎng)準(zhǔn)入管理辦法
- 內(nèi)部福利管理辦法
- 軍人生育管理辦法
- 2025年中考數(shù)學(xué)總復(fù)習(xí)《一元二次方程》專(zhuān)項(xiàng)測(cè)試卷帶答案
- 工藝品雕刻工國(guó)家職業(yè)標(biāo)準(zhǔn)(2024版)
- 2024年河北省公務(wù)員考試《行測(cè)》真題及答案解析
- 2025年八省聯(lián)考新高考 語(yǔ)文試卷
- 國(guó)家開(kāi)放大學(xué)《Web開(kāi)發(fā)基礎(chǔ)》形考任務(wù)實(shí)驗(yàn)1-5參考答案
- 《進(jìn)一步規(guī)范管理燃煤自備電廠工作方案》發(fā)改體改〔2021〕1624號(hào)
- JGJT299-2013 建筑防水工程現(xiàn)場(chǎng)檢測(cè)技術(shù)規(guī)范
- 輸變電工程施工質(zhì)量驗(yàn)收統(tǒng)一表式附件1:線(xiàn)路工程填寫(xiě)示例
- 健康教育指導(dǎo)評(píng)分表
- 快速入門(mén)穿越機(jī)-讓你迅速懂穿越機(jī)
- DLT 5630-2021 輸變電工程防災(zāi)減災(zāi)設(shè)計(jì)規(guī)程-PDF解密
評(píng)論
0/150
提交評(píng)論