真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

1.2IntelX86CPU系列的尋址方式-創(chuàng)新互聯(lián)

所謂X86系列,是指Intel從16位微處理器8086開始的整個CPU芯片系列,系列中的每種型號都保持與以前的各種型號兼容,主要有8086、8088、80186、80286、80386、80486以及以后各種型號的Pentium芯片。1.2IntelX86CPU系列
的尋址方式

在X86系列中,8086和8088是16位處理器,而從80386開始為32位處理器,80286則是該系列從8088到80386,也就是從16位到32位過渡的一個中間步驟。當(dāng)我們說一個CPU是16位或32位時,指的是處理器中ALU算術(shù)邏輯單元的寬度。

創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為靈山等服務(wù)建站,靈山等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為靈山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

8086中采用16位CPU和1M字節(jié)的內(nèi)存地址空間即20位的地址總線寬度。Intel使用分段的方法來處理ALU寬度與地址總線寬度的空隙:

Intel在8086CPU中設(shè)置了四個段寄存器:CS、DS、SS和ES。每個段寄存器都是16位的,對應(yīng)于地址總線中的高16位。每條訪內(nèi)指令中的內(nèi)部地址都是16位的,但是在送上地址總線之前都在CPU內(nèi)部自動的與某個段寄存器中的內(nèi)容相加,形成一個20位的實際地址。這樣就實現(xiàn)了從16位內(nèi)部地址到20位實際地址的轉(zhuǎn)換,或者映射。段寄存器的內(nèi)容對應(yīng)于20位地址總線中的高16位,所以在相加時實際上是拿內(nèi)部地址的高12位與段寄存器中的16位相加,而內(nèi)部地址中的低4位保留不變。這個方法與“段式內(nèi)存管理”相似,但缺少地址空間的保護機制。對于每一個由段寄存器的內(nèi)容確定的基地址,一個進程總是能夠訪問從此開始的64k的連續(xù)空間,而無法加以限制。同時,用來改變段寄存器內(nèi)容的指令也不是特權(quán)指令,這樣就可以通過改變段寄存器的內(nèi)容,一個進程可以隨心所欲的訪問內(nèi)存中的任何一個單元,而不受限制。這種模式缺乏對內(nèi)存空間的保護,為區(qū)別于后來的“保護模式”,就成為“實地址模式”。

8036是32位CPU。為了與之前兼容,Intel選擇了在段寄存器的基礎(chǔ)上構(gòu)筑保護模式的構(gòu)思,并且保留段寄存器為16位(這樣才可以利用原有的四個寄存器),但是又添加了兩個段寄存器FS和GS。為了實現(xiàn)保護模式,僅僅用段寄存器來確定一個基地址是不夠的,至少還得要有一個地址段的長度,并且還需要一些其他的信息,如訪問權(quán)限之類。所以需要一個數(shù)據(jù)結(jié)構(gòu)而并非一個單純的基地址。Intel設(shè)計的基本思路是:在保護模式下改變段寄存器的功能,使其從一個單純的基地址變成指向這樣一個數(shù)據(jù)結(jié)構(gòu)的指針。這樣,當(dāng)一條訪問內(nèi)存指令一個內(nèi)存地址時,CPU就可以這樣歸納出實際上應(yīng)該放上數(shù)據(jù)總線的地址:

1、根據(jù)指令的性質(zhì)來確定應(yīng)該使用哪一個段寄存器

2、根據(jù)段寄存器的內(nèi)容,找到相應(yīng)的地址段描述符結(jié)構(gòu)

3、從結(jié)構(gòu)中得到基地址

4、將指令中發(fā)出的地址作為位移,與段描述符結(jié)構(gòu)中規(guī)定的段長度相比,看是否越界

5、根據(jù)指令的性質(zhì)和段描述符中的訪問權(quán)限來確定是否越權(quán)

6、將指令中發(fā)出的地址作為偏移,與基地址相加而得出實際的物理地址。

80386 CPU中增設(shè)了兩個寄存器:全局性的段描述表寄存器GDTR和局部性的段描述符表寄存器LDTR,分別可以用來指向存儲在內(nèi)存中的一個段描述結(jié)構(gòu)數(shù)組,或者稱為段描述表。由于這兩個寄存器時新增設(shè)的,不存在于原有的指令是否兼容的問題,訪問這兩個寄存器的專用指令便設(shè)計成“特權(quán)指令”。

段寄存器的高13位用作訪問段描述表中具體描述符結(jié)構(gòu)的下標(biāo)。GDTR或LDTR中的段描述符表指針和段寄存器中給出的下標(biāo)結(jié)合在一起,才決定了 具體的段描述符表項在內(nèi)存中的什么地方,也可以理解成,將段寄存器中的低3位屏蔽后與GDTR或LDTR中的基地址相加得到描述符表項的起始地址。因此無法通過修改描述符表項的內(nèi)容來玩弄詭計,從而起到保護的作用。

在80386的段式內(nèi)存管理的基礎(chǔ)上,如果把每個段寄存器都指向同一個描述項,而在該描述項中將基地址設(shè)為0,并將段長度設(shè)為大,這樣便形成一個從0開始覆蓋真?zhèn)€32位地址空間的一個整段。由于基地址為0,此時的物理地址與邏輯地址相同,CPU放到地址總線上的地址就是在指令中給出的地址。這樣的地址有別于“段寄存器/位移量”構(gòu)成的“層次式”地址,所以Intel稱其為“Flat“地址。


文章名稱:1.2IntelX86CPU系列的尋址方式-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/higgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部