作者coldcoldday (找到一份"對"的工作好難)
看板ASM
標題Re: [問題] 請問如何讀寫延伸記憶體呢??
時間Tue Jan 16 21:26:09 2007
感謝了...
不過我其實也是看太不懂 >< (真的是新到爆的手)
只是 之前我買了一本80x86組語的書來看
一本厚厚的
從頭到尾都只有在做16位元控制(因為永遠都AX,BX,CX,DX,.....)
而這種模式(傳統)寫出來的最多只能控制到FFFF(F)=1Mbit
那麼如果想要直接就對1M以上做讀寫呢?(用Debug或Debug32該怎麼看)
(寫組語時該用什麼岔斷,或指令,?)
.....
會問這些是因為我本身是在 Dram相關產業工作
也會接觸到一些測記憶體有無壞bit的程式(Memtest +86,RST等等)
它們都可以直接在開機後純DOS直接執行(16位元的環境吧)
那他們就可以直接Read-write 1M以上 memory啊???
所以很好奇它們怎麼寫的...
純粹失i一個初學者的角度問的
: 你說的很草率,你的OS是DOS還是Win32?
: 我想你會這麼問指的應該是DOS
: 這種範例不是貼個一兩頁就說的清楚的
: 幾個方向給你去找囉
: 第一個是找XMS延伸記憶體的服務,以前DOS有個HIMEM.SYS
: 就是提供XMS的服務,好像叫做DPMI吧...忘了
: 這種XMS只能當BUFFER來COPY東西,不能直接使用
: 記憶體一樣64K限制,所有直接動作必須在主記憶體完成
: 可以在真實模式下運作
: 再來是EMS擴充記憶體,再CONFIG.SYS中應該是EMM386.EXE
: 是使用虛擬記憶體分頁技術,可以直接存取
: 一樣是用在真實模式
: 最後是DOS Extender,例如DOS4GW,個人比較推薦PMODE/W
: 這個一樣是透過DPMI去取得延伸記憶體
: 不同的是它可以直接存取延伸記憶體,沒有64K限制
: 還可以自訂CPU異常處理來做一些特異功能
: 內定使用32bit暫存器(eax...)
: 除此之外還有一條絕路,就是自己進入保護模式
: 這個我也不會(小時候沒學好) Orz
: 如果你真的初學,就千萬不要折磨自己了
: 現在也很難找的到人問,資料也不多
: 就算寫出來,你還要有保護模式的DEBUGGER(以前Watcom C的不錯)
: 剩下的去google看看吧...祝好運
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.224.122
1F:推 loveflames:我的書是從32位元教起... 01/17 12:38