組合語言學習筆記03——暫存器(CPU工作原理)
引言
在筆記01和02我們主要學習了CPU的外部通訊,即CPU如何和其他的器件去聯絡。
而現在呢我們要學習的是內部通訊,即CPU內部是如何工作的。
這一段的內容重點在段暫存器上,包括偏移地址 實體地址等。
由於將基礎知識分為第一大塊內容,所以我們現在從 2 來命名
2.1 CPU的概述
一個典型的CPU有運算器、控制器、暫存器等器件組成,這些器件需要靠內部匯流排相連。
那麼我們之前學的地址匯流排等等三種匯流排又是什麼呢?和CPU內部的匯流排不一樣,它們統稱為外部匯流排。 外部匯流排主要負責的是實現CPU和主機板上各個器件之間的聯絡。
CPU的組成
- 運算器進行資訊處理。主要有一些算術邏輯單元組成。
- 暫存器進行資訊儲存。CPU內部用於儲存資料的單元
- 控制器協調各種器件進行工作。
2.2 暫存器
暫存器是CPU內部的資訊儲存單元
還是以8086CPU來舉例,其共有14個暫存器:
- 通用暫存器:AX, BX, CX, DX。一般用於儲存運算過程中的臨時資料。
- 變址暫存器:SI, DI
- 指標暫存器:SP, BP
- 指令指標暫存器:IP
- 段暫存器:CS, SS, DS, ES
- 標誌暫存器:PSW
共性:8086CPU所有的暫存器都是16位的,可以存放兩個位元組
2.2.1 通用暫存器
我們以AX為例。
這是一個16位的暫存器,用來儲存一個16位的資料,它所能儲存的最大值顯然是2的16次方-1(因為都是二進位制儲存),用16位表示最大值則是FFFFH。
那我們現在來儲存18D(D是十進位制)這個資料。
以上是這些通用暫存器的儲存形式,BX,CX等都是一樣的。
現在來想一個問題,8086是16位的,那我們現在都是64位的,再往前8088是8位的,這樣就導致後代的CPU編寫出來的程式,在前代沒法用,那又如何去保證程式的相容性呢?
方法是:將通用暫存器分為兩個獨立的8位暫存器。即我們上次說過的高低位——AX分為AH(high)和AL(low),這樣就可以和上一代的8位暫存器適配了。
我們不難發現,十六進位制的4E20很容易對應出來其二進位制,而十進位制在分開後就不是很直觀,所以我們在學習組合語言的時候,要習慣用過十六進位制。
AX可以分為AH和AL,其他的通用暫存器也是同樣的。
2.22 變址暫存器——SI DI
由於網課的安排並沒有一下子就講完所有的暫存器,所以這裡等講到了我會補上。
2.23 指標暫存器——SP BP
由於網課的安排並沒有一下子就講完所有的暫存器,所以這裡等講到了我會補上。
2.24 指令指標暫存器——IP
由於網課的安排並沒有一下子就講完所有的暫存器,所以這裡等講到了我會補上。
2.25 段暫存器——CS SS DS ES
由於網課的安排並沒有一下子就講完所有的暫存器,所以這裡等講到了我會補上。
2.26 標誌暫存器——PSW
由於網課的安排並沒有一下子就講完所有的暫存器,所以這裡等講到了我會補上。
相關文章
- 《組合語言》王爽,學習筆記(標誌暫存器下)組合語言筆記
- 【自學組合語言Day-02】第二章:暫存器(CPU工作原理)組合語言
- 組合語言學習筆記組合語言筆記
- 【組合語言】第 3 章 暫存器(記憶體訪問)組合語言記憶體
- x86 組合語言標誌暫存器組合語言
- 讀書筆記《組合語言》——intel8086暫存器的記憶體訪問筆記組合語言Intel記憶體
- 組合語言學習筆記(十二)-浮點指令組合語言筆記
- 《組合語言》王爽,學習筆記(子程式呼叫)組合語言筆記
- 組合語言中暫存器的英文全程組合語言
- 組合語言-學習記錄(二)組合語言
- 組合語言零基礎入門學習筆記(一)組合語言筆記
- 【R語言學習筆記】探索ggplot的排列組合(一)R語言筆記
- 逆向學習筆記3——暫存器與彙編指令筆記
- Git 的工作區、暫存區、版本庫—— Git 學習筆記 15Git筆記
- 【學習筆記】組合數學筆記
- 組合數學學習筆記筆記
- 【R語言學習筆記】探索ggplot的排列組合:線圖(一)R語言筆記
- 讀書寫筆記-王爽《組合語言》筆記組合語言
- 組合語言學習記錄--輸入輸出字串組合語言字串
- Solidity語言學習筆記————32、建立合約Solid筆記
- 自學C day03-CPU內部結構和暫存器
- C 語言學習筆記筆記
- C語言學習筆記C語言筆記
- 組合語言學習記錄--第一個彙編程式組合語言
- 組合最佳化 學習筆記筆記
- 讀書筆記:組合語言(王爽)實驗七筆記組合語言
- jQuery學習筆記03jQuery筆記
- Solidity語言學習筆記————35、抽象合約和介面Solid筆記抽象
- 【C++學習筆記】型別組合C++筆記型別
- Solidity語言學習筆記————13、固定大小位元組陣列Solid筆記陣列
- Solidity語言學習筆記————14、動態位元組陣列Solid筆記陣列
- 組合數學筆記-排列與組合筆記
- Solidity語言學習筆記————2、使用編譯器Solid筆記編譯
- 組合語言1 - 什麼是組合語言?組合語言
- 熱更新語言--lua學習筆記筆記
- c語言學習筆記===函式C語言筆記函式
- 《JavaScript語言精粹》學習筆記二JavaScript筆記
- 《JavaScript語言精粹》學習筆記一JavaScript筆記