Re: [問題] 請問如何讀寫延伸記憶體呢??

看板ASM (組合語言)作者 (野貓老大)時間18年前 (2007/01/16 09:46), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/4 (看更多)
※ 引述《coldcoldday (找到一份"對"的工作好難)》之銘言: : 先說明我是初學者>_< : .............................. : 在傳統模式下 : 暫存器可以定址到64K(AX,BX,CX,DX=0~FFFF.....) : 也就是只能直接控制到記憶體的0~1M : 但在保護模式下 : 如果我想控制或讀寫 1MB以上的記憶體 : 我該如何做呢?? : 該用什麼指令?? : 可以順便貼個範例給我看嗎 : 感恩 你說的很草率,你的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: 61.228.185.208

01/16 13:32, , 1F
看不懂,不過來推一下 \囧/
01/16 13:32, 1F
文章代碼(AID): #15h2w9-S (ASM)
文章代碼(AID): #15h2w9-S (ASM)