DOS下的常規內存(第640kB)包含操作系統,驅動程序和可能的一個正在執行的程序。這個記憶是如何規劃的以避免這些程序之間的衝突?例如,是否保留了該地址空間的一部分?DOS常規內存佈局
回答
DOS將程序加載到存儲器中,在EXE header使用信息移居存儲器引用相對於由DOS分配存儲器塊正確爲當EXE是加載。
話雖如此,沒有任何東西可以防止您的程序干擾操作系統,設備驅動程序等。您可以讀寫任何內存位置。這種技術通常用於例如通過TSR programs(重寫interrupt vector table)鉤住鍵盤,計時器,鼠標或類似物,然後在保留在內存中時終止。
在這裏查看DOS存儲器佈局here的詳細視圖。
很好的地圖,但我對地址0x900處的653,056字節感興趣。編譯器如何保證我的程序(以實模式運行)不會與驅動程序發生衝突? – abc 2010-02-07 23:51:55
DOS本身將您的程序加載到可用內存的底部,並且您有剩餘的可用內存供自己使用(因爲DOS不是多任務處理)。驅動程序,TSR等將被分配內存,這會提升程序加載到的「內存底部」,或切入內存頂部(BIOS擴展通常會這樣做)。如果您使用的是C編譯器,它會向DOS請求可用內存,如果您使用匯編程序進行編譯,則第二個16位字將在您的程序 http://docs.huihoo上保留預留內存段。 com/help-pc/table-Program_Segment_Prefix.html – 2010-02-08 03:10:49
+ vote。這個評論和埃裏克J.的回答是我正在尋找的。謝謝。 – abc 2010-02-08 19:37:21
- 1. 內存佈局
- 2. 內存溢出佈局異常
- 3. jdk1.6內存佈局
- 4. Oracle Reports 6i - 常規佈局屬性
- 5. 佈局,佈局大,佈局正常等
- 6. C#內存佈局問題
- 7. 內存陣列布局
- 8. 陣列內存佈局
- 9. java和內存佈局
- 10. 集合的內存佈局
- 11. 佈局內存泄漏?
- 12. C堆棧內存佈局
- 13. 內存佈局練習C++
- 14. 虛擬內核內存佈局:負值
- 15. DOS命令分配內存?
- 16. 正常佈局
- 17. 基於已存儲佈局參數的內容動態佈局
- 18. 規模佈局項目
- 19. 不規則的佈局ItemsControl
- 20. HTML不規則佈局
- 21. OnePlusOne佈局 - 大還是佈局正常?
- 22. betweene內佈局
- 23. 安卓佈局 - 佈局正常與佈局
- 24. 在linux中的程序內存佈局
- 25. .NET數組的內存佈局
- 26. OpenCL粒子系統內存佈局
- 27. 內存佈局(Phyical VS邏輯視圖)
- 28. 窗口進程內存佈局
- 29. 類層次結構的內存佈局
- 30. C++新操作符 - 內存佈局
我不認爲這篇文章回答了實模式地址空間內的衝突問題。 – abc 2010-02-08 00:01:21