Re: [問題] 請問如何讀寫延伸記憶體呢??
※ 引述《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
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章