程序的裝入和鏈接
1,基本過程
1,編譯:.C/.CPP/.ASM文件轉換爲.OBJ文件;
2,鏈接:.OBJ文件加上.LIB文件鏈接形成裝入模塊;
3,裝入:裝入模塊裝入物理內存後即可運行;
2,程序的裝入
1)絕對裝入方式
定義:編程時直接確定內存位置;(每次只能運行一個程序,否則就會因爲地址不同,程序運行出錯)
特點:不靈活,不支持多道程序設計(多道程序設計是在計算機內存中同時存放幾道相互獨立的程序,使它們在管理程序控制之下,相互穿插的運行);
2)可重定位裝入方式
首先引入虛擬技術:
應用虛擬技術實現存儲管理
邏輯地址(相對地址,虛地址)
用戶程序經過彙編或編譯後形成目標代碼;
目標代碼採用相對地址形式:
- 首地址爲0;
- 其餘指令中地址以相對於首地址的偏移爲地址;
不能用邏輯地址在內存中讀取信息
物理地址(絕對地址,實地址)
內存中存儲單元的地址,可直接尋址
靜態地址重定位
定義:編程時使用邏輯地址,裝入時進行地址重定位,運行時使用物理地址;
特點:靈活,支持多道程序設計;
動態地址重定位
定義:編程時使用邏輯地址,運行時進行地址重定位,運行時使用物理地址;
特點:靈活,支持多道程序設計;
3,程序的鏈接
靜態鏈接
編程時,鏈接所有模塊;
裝入時動態鏈接
裝入時,鏈接所有模塊;
運行時動態鏈接
運行時,根據需要鏈接模塊;