Re: [問題] 請問如何讀寫延伸記憶體呢??
看板ASM (組合語言)作者coldcoldday (找到一份"對"的工作好難)時間18年前 (2007/01/16 21:26)推噓1(1推 0噓 0→)留言1則, 1人參與討論串3/4 (看更多)
感謝了...
不過我其實也是看太不懂 >< (真的是新到爆的手)
只是 之前我買了一本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
推
01/17 12:38, , 1F
01/17 12:38, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章