1 程序的結構與表現形式
大多數計算使用8位的塊,即字節(byte),作為最小的可尋址的內存單元。程序對象,即程序數據、指令和控制信息的字節集合,編譯器和系統運行時將存儲空間劃分成更可管理的單元來存儲程序對象。
計算機執行機器代碼,用字節序列編碼低級的操作,包括處理數據、管理內存、讀寫存儲設備上的數據、以及利用網絡通信。程序源碼會經過編譯器生成機器代碼,編譯器基於編程語言的規則、目標機器的指令集合和操作系統遵循的慣例,經過壹系列的階段生成機器代碼。匯編代碼是機器代碼的文本表示,給出程序中的每壹條指令。
計算機系統使用了多種不同形式的抽象,利用抽象模型來隱藏實現的細節。對於機器級編程來說,兩個重要的抽象:
1. 指令集架構(Instruction Set Architecture, ISA) 定義機器級別格式和行為,處理器狀態、指令的格式,以及每條指令對狀態的影響。
2. 虛擬內存地址,程序使用的內存地址是虛擬地址,提供內存模型看上去是壹個非常打的字節數組。實際上又許多個硬件存儲器和操作系統軟件組合起來。