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

看板ASM (組合語言)作者 (找到一份"對"的工作好難)時間18年前 (2007/01/16 21:26), 編輯推噓1(100)
留言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
我的書是從32位元教起...
01/17 12:38, 1F
文章代碼(AID): #15hD9r8M (ASM)
文章代碼(AID): #15hD9r8M (ASM)