本節介紹8086電腦的主機板布局、介面、各種儲存晶元和1M記憶體空間。
母板:計算機每個硬體插槽的載體。 計算機的各個部分通過主機板上的插槽和匯流排連線到 CPU。
介面卡從程式設計的角度來看,主機板上的各種插槽是計算機每個硬體的介面位址。 計算機系統有兩組獨立的位址。 硬體的介面位址獨立於1M主儲存器的線性位址,每個介面都有乙個預定的埠位址。 我們將在第 16 章 輸入和輸出中斷詳細解釋。
各種儲存晶元:RAM、ROM、視訊記憶體、BIOS。 RAM稱為動態隨機存取儲存器,用於動態讀寫資料,斷電後資料丟失。 ROM稱為靜態記憶體,它儲存了BIOS和各種驅動程式,並且斷電後不會消失,並且ROM只能讀取而不能寫入。 視訊記憶體更特別,兼具RAM和ROM儲存。 視訊記憶體的RAM用於顯示資料,視訊記憶體的ROM用於儲存顯示卡驅動。 BIOS 是系統引導載入程式。
記憶體位址空間8086計算機記憶體位址空間分為主記憶體、視訊記憶體和各種ROM三部分,它們共同構成乙個1M大小的線性位址空間。
主機板上有乙個CPU和一些主要裝置,它們通過匯流排(位址匯流排、資料匯流排和控制匯流排)連線到CPU。 這些裝置具有記憶體、外圍晶元組、擴充套件插槽等。 擴充套件插槽用於將外部硬體裝置連線到主機板。
在計算機系統中,所有可以使用程式控制的裝置都必須由CPU控制,例如顯示器、揚聲器、印表機等。 CPU 無法直接控制外部裝置。 它需要通過插入擴充套件槽的介面卡進行控制。 擴充套件槽通過匯流排連線到CPU,因此介面卡也通過匯流排連線到CPU。 CPU可以直接控制這些介面卡,從而實現對外部裝置的控制。
每個介面卡都有乙個設定的埠位址,CPU通過控制匯流排向介面卡的埠位址傳送控制命令,介面卡根據CPU的控制命令工作。
如圖1-22所示,一台PC上裝有多個獨立的儲存晶元,這些晶元屬於不同的元件。 依賴關係可分為:
隨機存取儲存器 (RAM)。:用於儲存CPU使用的大部分程式和資料,主RAM一般由兩個位置的RAM組成,RAM安裝在主機板上,RAM插入擴充套件槽(記憶體模組)。
靜態記憶體ROM:它儲存了BIOS基本的輸入和輸出程式,這是主機板和各種介面卡製造商(如顯示卡、網絡卡等)提供的軟體系統,通過它可以使用硬體裝置進行最基本的輸入和輸出。 例如,主機板上的ROM儲存系統的BIOS,顯示卡的ROM儲存顯示卡的BIOS,ROM的BIOS儲存在網絡卡上。
介面卡上的RAM:部分介面卡需要臨時儲存大量輸入輸出資料,並具有RAM。 最典型的是顯示卡上的RAM,稱為視訊記憶體。 我們將要顯示的內容寫入視訊記憶體,顯示卡將資料從視訊記憶體輸出到顯示器上,就會出現在螢幕上。
bios:基本I/O程式、開機自檢系統和自動啟動程式。
CMOS晶元是主機板上BIOS晶元中的一種可讀可寫的RAM晶元,主要用於儲存當前系統的硬體配置和操作人員對某些引數的設定。 CMOS RAM晶元由系統通過主機板上的圓形備用電池供電,因此即使在關機狀態後也不會丟失資訊。
圖1-22 PC記憶體型別
所有型別的記憶體都連線到 CPU。
當 CPU 讀取或寫入它們時,它會通過控制線傳送記憶體讀寫命令。
8086計算機將所有型別的記憶體視為記憶體,一般將它們視為由多個儲存單元組成的邏輯記憶體,這種邏輯記憶體稱為記憶體位址空間。
注意。 檢視上一節的內容 - 位址空間:
如果 CPU 的位址匯流排寬度為 10,則可以寫入 210 個記憶體位址號,即可以找到 1024 位元組的記憶體單元,這稱為 CPU 的記憶體位址空間。
8086 計算機有 20 條位址行,定址範圍為 220 位元組或 1MB。
80386 計算機有 32 條位址線,定址範圍為 232 位元組或 4GB。
x64 計算機有 64 個位址行,其定址範圍為 264 位元組。
CPU 將系統中各種型別的記憶體視為邏輯記憶體。 所有物理儲存器都被認為是由多個儲存單元組成的邏輯儲存器,每個儲存單元佔據乙個位址段,即一段位址空間。 當 CPU 在此位址空間中讀取和寫入資料時,它會在相應的物理記憶體中讀取和寫入資料。
例。 假設記憶體位址空間的位址段分配如下:
位址 0 7fffh 32kb 空間作為主儲存空間;
位址 8000h 9fffh 的 8KB 空間為視訊記憶體;
位址A000H FFFFH的24KB空間是其他ROM儲存器的位址空間;
CPU將資料寫入位址1000H儲存單元,資料寫入主隨機存取儲存器;
CPU將資料寫入位址8000H儲存單元,資料寫入視訊記憶體並出現在顯示屏上。
這不是 CPU 將資料寫入 C000H 儲存單元(即 ROM 唯讀儲存單元)的有效操作。
圖1-23 PC記憶體位址空間分布示意圖
PC中各種記憶體的記憶體位址空間分配如圖1-23所示。 這些儲存器將與計算機的整體定址範圍相對應。
記憶體位址空間的大小受位址匯流排寬度的限制。 8086cpu
有 20 個位址匯流排,可以定位 220 個儲存單元和位址車。
周長 0 220-1,位址空間大小 1MB。
如果 80386 CPU 的位址匯流排寬度為 32,則記憶體位址空間為 32。
4gb。在基於計算機硬體對系統進行程式設計時,必須知道這一點。
為計算機系統分配記憶體位址空間。 到某種型別的儲存。
當裝置讀取或寫入資料時,它需要知道其第乙個單元位址和最後乙個單元位址。
單位位址。
8086 CPU的位址分配如圖1-24所示
圖1-24 8086 pc的記憶體位址空間分配示意圖
0 9ffff 儲存單元是主要的隨機存取儲存器。
a0000 bffff 的儲存單元是視訊記憶體。
C0000 FFFFFF 儲存單元是只讀儲存器。
本文節選自程式設計大師系列教材《X86組合語言基礎教程》!