《組合語言》學習筆記——基礎知識
阿新 • • 發佈:2022-03-16
0x01 基礎知識
1.1 機器語言
- 機器語言是機器指令的集合。
- 機器指令是一列二進位制數字,計算機將其轉變為一列高低電平,使得計算機的電子器件受到驅動,從而完成運算。
上述計算機的功能由CPU(中央處理單元)來完成,是一種微處理器。
- 由於硬體設計和內部結構不同,就需要不同的電平脈衝控制,所以每一種微處理器都有自己的機器指令集,也就是機器語言。
1.2 組合語言的產生
由於機器語言難以辨別和記憶,組合語言產生了。
- 組合語言的主體的彙編指令。
- 彙編指令是機器指令便於記憶的書寫格式。
操作:暫存器BX的內容送入AX。 機器指令:1000100111011000 彙編指令:mov ax, bx
- 計算機只能讀懂機器指令,故需要將彙編指令轉換為機器指令。
- 編譯器負責將程式設計師寫出的彙編程式編譯為機器碼,再由計算機最終執行。
1.3 組合語言的組成
- 彙編指令(核心)
- 機器碼的助記符,有對應的機器碼。
- 偽指令、其他符號(+、-、*、/)
- 由編譯器執行,沒有對應的機器碼。
1.4 儲存器
- CPU是計算機的核心運算部件,需要向其提供資料和指令。
- 資料和指令存放在儲存器(記憶體)中,故需要了解如何在CPU和記憶體之間交換資訊。
磁碟的資料和程式需要先讀入記憶體才能進而被CPU使用。
1.5 指令和資料
- 指令和資料是應用上的概念,本質都是二進位制資訊,沒有區別。
1000100111011000 -> 89D8H(資料)
1000100111011000 -> mov ax, bx(指令)
1.6 儲存單元
- 儲存器被分為若干個儲存單元。
- 每個單元從0開始編號;
- 儲存器的容量是以位元組為最小單位計算的。
磁碟的容量單位同記憶體一樣。
1.7 CPU對儲存器的讀寫
-
CPU讀寫資料時必須和外部期間進行三類資訊互動。
- 地址資訊:儲存單元的地址。
- 控制資訊:器件的選擇、讀或者寫的命令。
- 資料資訊:讀或者寫的資料。
-
CPU通過匯流排和其他晶片傳輸資訊。
- 匯流排就是一根根導線的集合。
- 從邏輯上分為:地址匯流排、控制匯流排和資料匯流排。
-
CPU從記憶體中讀/寫資料的過程。
- CPU通過地址線傳送要讀寫的地址;
- CPU通過控制線傳送讀/寫的命令;
- 記憶體和CPU通過資料線互動資料:
- 讀:記憶體向CPU傳輸目的地址的資料。
- 寫:CPU向記憶體傳輸要存入到目的地址的資料。
1.8 地址匯流排
- CPU是通過地址線來指定儲存單元。
- 一個CPU有N跟地址線則稱其地址匯流排的寬度為N。
- 此時CPU可以表示2的N次方個資訊,故最多可以定址2的N次方個記憶體單元。
1.9 資料匯流排
- CPU和記憶體之間的資料傳輸是通過資料匯流排完成的。
- 資料匯流排的寬度決定了資料傳輸速度。
- 8根資料匯流排一次可以傳送1個位元組資料;
- 16根資料匯流排一次可以傳送2個位元組資料。
1.10 控制匯流排
- CPU對外部器件的控制是通過控制匯流排完成的。
- 控制匯流排是一些不同控制線的集合。
- 控制匯流排的寬度決定了CPU對外部器件的控制能力。
1.11 記憶體地址空間
- 地址匯流排寬度決定可定址的記憶體單元,構成CPU的記憶體地址空間。
1.12 主機板
- 每個電腦都有個主機板,放置核心器件和一些主要器件。
- 器件之間通過匯流排相連。
- 這些器件包括:CPU、儲存器、外圍晶片組、擴充套件槽等。
- 擴充套件槽上一般有RAM記憶體條和各類[介面卡](#1.13 介面卡)。
1.13 介面卡
- CPU不能直接控制外部裝置,比如顯示器、音響、印表機等。
- CPU通過匯流排向介面卡傳送命令,介面卡根據CPU的命令控制外設。
1.14 各類儲存器晶片
- 每個電腦裝有多個儲存器晶片,這些晶片物理上是獨立的。
- 從讀寫屬性上分為隨機儲存器(RAM)和只讀儲存器(ROM)。
- 隨機儲存器:可讀可寫,掉電後內容丟失。
- 只讀儲存器:只讀,關機後內容不丟失。
- 從功能和連線上分為以下幾類:
-
主儲存器
- 存放CPU使用的絕大部分程式和資料。
- 由裝在[主機板](#1.12 主機板)上和擴充套件槽兩個位置上的RAM組成。
-
裝載BIOS(基本輸入輸出系統)的ROM
- BIOS是由主機板和各類介面卡廠商提供的軟體系統,可以利用硬體裝置進行最基本的輸入輸出。
-
介面卡上的RAM
- 某些介面卡需要對大批量輸入、輸出資料進行暫時儲存,故在其上裝RAM,例如視訊記憶體。
-
主儲存器
1.15 記憶體地址空間
- 儲存器的兩個相同點
- 都和CPU匯流排相連。
- CPU都是通過控制線發出讀寫命令。
- CPU操控儲存器時,將它們都當作記憶體對待,把他們看作一個若干儲存單元組成的邏輯儲存器。
每個物理儲存器在邏輯儲存器中佔有一個地址段。
- 基於硬體系統程式設計時,必須知道系統中的記憶體地址空間分配情況。
- 向某個儲存器讀寫資料時,必須知道其第一個單元的地址和最後一個單元的地址,才能保證讀寫到目的儲存器。
- 不同計算機系統的記憶體地址空間分配情況不同。