代碼段
包含可執行指令的目標文件的一部分
在採用段式主記憶體管理的架構中,代碼段(code segment / text segment)通常是指用來存放程式執行代碼的一塊主記憶體區域。這部分割區域的大小在程式執行前就已經確定,並且主記憶體區域通常屬於唯讀, 某些架構也允許代碼段為可寫,即允許程式自修改(self-modifying code)。 在代碼段中,也有可能包含一些唯讀的常數變數,例如字串常數等,依照不同執行檔格式的規格與載入器的實作會有不同的情況。
作業系統在裝載一個程式時會進行行程位址空間的分段,而代碼段通常處於最底部,即最低位址部分,而堆和棧在高處,所以在允許代碼段可寫的架構上,當堆或棧主記憶體溢位時,代碼段中的資料就會開始被覆蓋。[1]
參見
編輯這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |
- ^ Yu-An Tan; Ji-yan Zheng; Yuan-Da Cao; Xue-lan Zhang. Buffer overflow protection based on adjusting code segment limit. IEEE International Symposium on Communications and Information Technology. IEEE. October 2005. doi:10.1109/ISCIT.2005.1567023.