1. 程式人生 > 其它 >《組合語言》學習筆記——基礎知識

《組合語言》學習筆記——基礎知識

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操控儲存器時,將它們都當作記憶體對待,把他們看作一個若干儲存單元組成的邏輯儲存器

每個物理儲存器邏輯儲存器中佔有一個地址段

  • 基於硬體系統程式設計時,必須知道系統中的記憶體地址空間分配情況
    • 向某個儲存器讀寫資料時,必須知道其第一個單元的地址最後一個單元的地址,才能保證讀寫到目的儲存器。
    • 不同計算機系統的記憶體地址空間分配情況不同