1. 程式人生 > >《組合語言(第3版)(王爽 著)》學習筆記二:基礎知識(2)

《組合語言(第3版)(王爽 著)》學習筆記二:基礎知識(2)

1.7 CPU 對儲存器的讀寫

  1. 以上講到,儲存器被劃分成多個儲存單元,儲存單元從零開始編號。這些編號可以看作儲存單元在儲存器中的地址。就想一條街,每個房子都有門牌號碼。
  2. CPU 要從記憶體中讀資料,首先要指定儲存單元的地址。也就是說它要先確定它要讀取哪一個儲存單元中的資料。就像在街上找人,先要確定他住在哪個房子裡。
  3. 另外,在一臺微機中,不只有儲存器這一種器件。CPU 在讀寫資料時還要指明,它要對哪一個器件進行操作,進行哪種操作,是從中讀出資料,還是向裡面寫入資料。
  4. 可見,CPU 要想進行資料的讀寫,必須和外部器件(標準的說法是晶片)進行下面三類資訊的互動:
  • 儲存單元的地址(地址資訊);
  • 器件的選擇,讀或寫的命令(控制資訊);
  • 讀或寫的資料(資料資訊)。
  1. 電子計算機能處理、傳輸的訊號都是電訊號,電訊號當然要用導線傳送。在計算機中專門有連線 CPU 和其他晶片的導線,通常稱為匯流排。匯流排從物理上來講,就是一根根導線的集合。根據傳送資訊的不同,匯流排從邏輯上又分為三類:地址匯流排控制匯流排資料匯流排
  2. CPU 從 3 號單元中讀取資料的過程如下: 圖 1.3 CPU 從記憶體中讀取資料的過程
  • 第一步,CPU 通過地址線將地址資訊 3 發出。
  • 第二步,CPU 通過控制線發出記憶體讀命令,選中儲存器晶片,並通知它,將要從中讀取資料。
  • 第三步,儲存器將 3 號單元中的資料 8 通過資料線送入 CPU。
  1. 寫操作與讀操作的步驟相似。如向 3 號單元寫入資料 26。
  • 第一步,CPU 通過地址線將地址資訊 3 發出。
  • 第二步,CPU 通過控制線發出記憶體寫命令,選中儲存器晶片,並通知它,要向其中寫入資料。
  • 第三步,CPU 通過資料線將資料 26 送入記憶體的 3 號單元中。
  1. 要讓一個計算機或微處理器工作,應向它輸入能夠驅動它進行工作的電平資訊(機器碼)。
  • 對於 8086 CPU,機器碼 1010 0001 0000 0011 0000 0000(從 3 號單元讀取資料送入暫存器 AX)能夠完成從 3 號單元讀資料。
  • 機器碼難於記憶,用匯編指令來表示,則上面的機器碼對應的彙編指令為 MOV AX,[3](傳送 3 號單元的內容入 AX)。

1.8 地址匯流排

  1. 現在我們知道,CPU 是通過地址匯流排來指定儲存器單元的。可見地址總線上能傳送多少個不同的資訊,CPU 就可以對多少個儲存單元進行定址。
  2. 一個 CPU 有 N 根地址線,則可以說這個 CPU 的地址匯流排的寬度為 N。這樣的 CPU 最多可以尋找 2 的 N 次方個記憶體單元。

1.9 資料匯流排

  1. CPU 與記憶體或其他器件之間的資料傳送是通過資料匯流排來進行的。資料匯流排的寬度決定了 CPU 和外界的資料傳送速度。8 根資料匯流排一次可傳送一個 8 位二進位制資料(即一個位元組)。16 根資料匯流排一次可傳送兩個位元組。
  2. 8086 CPU 有 16 根資料線,可一次傳送 16 位資料,所以可一次傳送資料 89D8H;而 8088 CPU 只有 8 根資料線,一次只能傳 8 位資料,所以向記憶體寫入資料 89D8H 時需要進行兩次資料傳送。

1.10 控制匯流排

  1. CPU 對外部器件的控制是通過控制匯流排來進行的。在這裡控制匯流排是個總稱,控制匯流排是一些不同控制線的集合。有多少根控制匯流排,就意味著 CPU 提供了對外部器件的多少種控制。所以,控制匯流排的寬度決定了 CPU 對外部器件的控制能力。
  2. 前面所講的記憶體讀或寫命令是由幾根控制線綜合發出的,其中有一根稱為“讀訊號輸出”的控制線負責由 CPU 向外傳送讀訊號,CPU 向該控制線上輸出低電平表示將要讀取資料;有一根稱為“寫訊號輸出”的控制線則負責傳送寫訊號。

1.1 ~ 1.10 小結

  1. 彙編指令是機器指令的助記符,同機器指令一一對應。
  2. 每一種 CPU 都有自己的彙編指令集。
  3. CPU 可以直接使用的資訊在儲存器中存放。
  4. 在儲存器中指令和資料沒有任何區別,都是二進位制資訊。
  5. 儲存單元從零開始順序編號。
  6. 一個儲存單元可以儲存 8 個 bit,即 8 位二進位制數。
  7. 1Byte = 8bit;1KB = 1024B;1MB = 1024KB;1GB=1024MB。
  8. 每一個 CPU 晶片都有許多管腳,這些管腳和匯流排相連。也可以說,這些管腳引出匯流排。一個 CPU 可以引出 3 種匯流排的寬度標誌了這個 CPU 的不同方面的效能:
  • 地址匯流排的寬度決定了 CPU 的定址能力;
  • 資料匯流排的寬度決定了 CPU 與其他器件進行資料傳送時的一次資料傳送量;
  • 控制匯流排的寬度決定了 CPU 對系統中其他器件的控制能力。
  1. 在彙編課程中,我們從功能的角度介紹了 3 類匯流排,對實際的連線情況不做討論。

檢測點 1.1

檢測點 1.1 [我的答案] (1)13。 (2)1024;0;1023。 (3)8192;1024。 (4)2302^{30}2202^{20}2102^{10}。 (5)64;1;16;4。 (6)1;1;2;2;4。 (7)512;256。 (8)二進位制。