引用:
|
作者whatsnew
至於記憶體覆蓋的問題我就不太懂了,同樣指令下我想都是只叫出有需要被執行的code吧
謝謝各位的意見
|
因為WIN下(或其他多工OS)非單工,所以會有階級之分,WIN共分4層(通常叫"環"),核心程式在第0環(最高),而使用者的程式在第3環(最低),因此環3不能直接控制比它高的地方(如記憶體存取..等)。
再者,因是多工,所以你的程式在載入後,各記憶體區會被鎖定,例如 程式碼區一定是唯讀,你要改變程式碼或寫入DATA,一定會得到"該記憶體不能寫入"等類似的訊息,不像以前在DOS下可以玩SMC(自我變更程式碼)方法。
有關更多保護模式下的種種,可參考
http://1drv.ms/1fBQnDB 中的第5,6,7章,雖然是舊資料,但基本的改變不了,現在的程式員不一定要深入明瞭,但有個概念也好。
至少了解....X86是什麼怪物....
