標(biāo)題:在dos實(shí)模式下直接存取4gb內(nèi)存

  作為軟件開發(fā)人員,大多數(shù)對(duì)于保護(hù)模式都感到神秘和不易理解。本人在開發(fā)32位微內(nèi)核搶占式多線程操作系統(tǒng)過程中,深入了解到cpu的地址機(jī)理,在這里將分析cpu的工作原理,解開保護(hù)模式的神秘面紗,讀者將會(huì)發(fā)現(xiàn)保護(hù)模式其實(shí)與實(shí)模式一樣簡(jiǎn)單和易于控制。在此基礎(chǔ)上用四五十行c語言程序做到進(jìn)出保護(hù)模式和在實(shí)模式之下直接訪問整個(gè)4gb內(nèi)存空間。  ……(快文網(wǎng)http://hoachina.com省略286字,正式會(huì)員可完整閱讀)…… 
  更多相關(guān)文章:在dos實(shí)模式下直接存取4g
理物理地址的?真的是在實(shí)模式下用段寄存器左移4位與偏移量相加,在保護(hù)模式下用段描述符中的基地址加偏移量而兩者是毫無關(guān)聯(lián)的嗎?答案是兩者其實(shí)是一樣的。當(dāng)intel把80286推出時(shí)其地址空間變成了24位,從8086的20位到24位,十分自然地要加大段寄存器才行,實(shí)際上它們都被加大了,只是由于保護(hù)的原因加大的部分沒有被程序看見,到了80386之后地址又從24位加大到32位(80386sx是24位)。整個(gè)段寄存器如下圖所示:
  @@12a08400.gif;圖1@@
  在8086中cpu只有“看得見部分”,從而也直接參與了地址形成運(yùn)算,但在80286之后,在“看不見部分”中已經(jīng)包含了地址值,“看得見部分”就退化為只是一個(gè)標(biāo)號(hào)再也不用參與地址形成運(yùn)算了。地址的形成總是從“不可看見部分”取出基址值與偏移相加形成地址。也就是說在實(shí)模式下當(dāng)一個(gè)段寄存器被裝入一個(gè)值時(shí),“看不見部分”的界限被設(shè)成ffffh,基址部分才是要裝入值左移4位,屬性部分設(shè)成16位0特權(quán)級(jí)。這個(gè)過程與保護(hù)模式時(shí)裝入一個(gè)段存器是同理的,只是保護(hù)模式的“不可見部分”是從描述表中取值,而實(shí)模式是一套固定的過程。
  對(duì)于cpu在形成地址時(shí),是沒有實(shí)模式與保護(hù)模式之分的,它只管用基址(“不可見部分”)去加上偏移量。實(shí)模式與保護(hù)模式的差別實(shí)際上只是保護(hù)處理部件是否工作得 ……(未完,全文共6176字,當(dāng)前只顯示743字,請(qǐng)閱讀下面提示信息。收藏在dos實(shí)模式下直接存取4gb內(nèi)存

上一篇:turbo c位圖和bmp位圖格式分極及應(yīng)用
下一篇:文本方式下圖形提示界面制作