看了王爽的《彙編語言》,感覺寫的很好,真的是通俗易懂,爲了大家也可以快速瀏覽一下彙編語言,我特意將筆記一章一章寫出來。獨樂了不如衆樂樂,不會彙編語言的程序員不是好程序員!
一、基礎知識
1.1. 彙編語言由三類指令組成:
(1)彙編指令:機器語言的助記符,有對應的機器語言;
(2)僞指令:沒有對應的機器碼,由編譯器執行,計算機並不執行;
(3)其他符號:如+-*/,由編譯器識別,沒有對應的機器碼。
編程語言的核心是彙編指令。
1.2. CPU想要進行數據的讀寫,需要CPU與外界進行“地址信息”、“數據信息”和“控制信息”的交互;這三類信息都是通過CPU與外部器件的芯片進行交互才能完成的;這些信息分別是通過“地址總線”“數據總線”“控制總線”
一個CPU有N根地址線,則可以說這個CPU的地址總線寬度爲N;這樣的地址總線可以尋找2的N次方個存儲單元;
CPU與內存或是其他器件之間的數據傳送是通過數據總線來完成的,數據總線的寬度決定了CPU與外界的數據傳輸速度;
CPU對外部器件的控制是通過控制總線來完成的,控制總線是一個統稱,有多少根控制線就有多少種控制;
1.3. CPU不直接控制外部設備(如:鍵盤、顯示器),直接控制這些設備的是插在擴展槽上的接口卡,擴展槽直接通過總線與CPU相連接,所以接口卡也是通
過總線與CPU相連,CPU可以直接控制這些接口卡;
1.4. 各類存儲器
存儲器從功能和連接上可以分爲以下幾類:
(1)隨機存儲器(RAM):用於存放CPU使用的絕大多數程序和數據,一般包括主板上的RAM和擴展槽上的RAM;
(2)裝有BIOS的ROM,可以通過它利用該硬件設備進行基本的輸入輸出,主板上裝有ROM,網卡上裝有ROM,顯卡上裝有ROM;
(3)接口卡上的RAM:某些接口卡上需要對大量輸入、輸出數據進行暫時存儲,典型的就是接口卡上的RAM;
1.5. 各類存儲器有兩個共同的特點:
(1)都和CPU總線相連;
(2)CPU都是通過控制總線對他們進行控制;
因此,CPU在操控他們時,都把他們當作內存來對待,即把他們看成是一個大的邏輯存儲器,也就是我們所說的內存地址空間;那麼CPU在對某段內存地址進行數據讀寫時,實際就是對相應的物理存儲器上進行數據讀寫;
1.6. 內存地址空間大小受地址總線的寬度的限制;
1.7. CPU由寄存器、運算器、控制器等組成,各個器件在CPU中的作用:
(1)寄存器進行信息存儲;
(2)運算器進行信息處理;
(3)控制器控制各個器件進行工作;
(4)內部總線連接各個器件,在他們之間進行數據傳輸;