0
我有一個非常簡單的問題。我無法自己找到答案,因爲我沒有任何環境來測試它。訪問頁面中的字節
如果我在頁面邊緣訪問4個字節,會發生什麼?
mov eax, dword [0x100000+4095]
當我有權訪問0x101000的頁面時,當我不知道什麼時,上三個字節是什麼?
請幫忙。
我有一個非常簡單的問題。我無法自己找到答案,因爲我沒有任何環境來測試它。訪問頁面中的字節
如果我在頁面邊緣訪問4個字節,會發生什麼?
mov eax, dword [0x100000+4095]
當我有權訪問0x101000的頁面時,當我不知道什麼時,上三個字節是什麼?
請幫忙。
什麼happnes主要取決於您的操作系統。如果你有正常的內存訪問,那麼什麼都不會發生。這個價值只是讀取當時的價值。如果不允許訪問頁面,那麼你的程序會產生一個頁面錯誤,這是操作系統必須處理的。
如果頁面在光盤上,因爲它已被換出,則操作系統將加載該頁面,並在其停止的位置恢復程序。你的程序不會注意到這一點。如果該頁面無效,則操作系統將引發異常,並根據操作系統的不同而有所不同,否則程序將崩潰。
如果訪問是在內核級完成的,並且無法解析,那麼操作系統很可能會因內核崩潰而崩潰,或者如果寫得很好,可能會導致驅動程序失效。
如果頁面沒有映射,那麼操作系統應該會出現頁面錯誤,併爲您映射。如果您無法訪問該頁面,操作系統很可能會終止您的進程(它會「崩潰」)。 –
uhm,所以字節將從它後面的頁面中獲取? – user35443
如果操作系統可以讓你從該頁面讀取,那麼是的。 –