瀏覽單個文章
asccpu
Master Member
 

加入日期: Jan 2002
您的住址: U.S.S AGC
文章: 1,669
引用:
作者whatsnew
至於記憶體覆蓋的問題我就不太懂了,同樣指令下我想都是只叫出有需要被執行的code吧
謝謝各位的意見

因為WIN下(或其他多工OS)非單工,所以會有階級之分,WIN共分4層(通常叫"環"),核心程式在第0環(最高),而使用者的程式在第3環(最低),因此環3不能直接控制比它高的地方(如記憶體存取..等)。
再者,因是多工,所以你的程式在載入後,各記憶體區會被鎖定,例如 程式碼區一定是唯讀,你要改變程式碼或寫入DATA,一定會得到"該記憶體不能寫入"等類似的訊息,不像以前在DOS下可以玩SMC(自我變更程式碼)方法。

有關更多保護模式下的種種,可參考 http://1drv.ms/1fBQnDB 中的第5,6,7章,雖然是舊資料,但基本的改變不了,現在的程式員不一定要深入明瞭,但有個概念也好。

至少了解....X86是什麼怪物....
 
__________________
辭源數位化計劃啟始於2014年1月。請拜訪成果。
舊 2016-08-01, 09:53 AM #12
回應時引用此文章
asccpu離線中