天天看點

X86架構(CPU、總線、記憶體)

 00、計算機的工作模式

關鍵詞: CPU、總線、記憶體、其他裝置

了解: 計算機僅通過cpu執行資料運算,中間結果儲存到記憶體,最終運算結果傳遞給到其他程序處理

X86架構(CPU、總線、記憶體)
  • CPU是這台計算機的大腦
  • 總線組成CPU和其他裝置的高速通道
  • 記憶體存儲媒體,儲存CPU計算的中間結果
  • 其他裝置,顯示卡/顯示器、磁盤控制器/磁盤、usb控制器/滑鼠鍵盤等

01、CPU和記憶體

關鍵詞: 運算單元、資料單元、控制單元、代碼段、資料段、指令指針寄存器、程序切換、總線

了解: CPU内部有3個單元組成。當程式加載到記憶體時,cpu通過總線讀取程序的資料段(資料)和代碼段(指令),将運算後的結果寫回資料段。

X86架構(CPU、總線、記憶體)
  • 運算單元隻管算,例如做加法、做位移等等。
  • 資料單元包括 CPU 内部的緩存和寄存器組,空間小速度快,可以暫時存放資料和運算結果。
  • 控制單元是一個統一的指揮中心,它可以獲得下一條指令,然後執行這條指令。
  • 記憶體分段這裡簡單分為代碼段和資料段兩塊,分别存放指令和資料。
  • 指令指針寄存器是控制單元部分,存放下一條指令在記憶體中的位置。
  • 程序切換CPU 裡有兩個寄存器,專門儲存目前處理程序的代碼段的起始位址,以及資料段的起始位址(A程序切換B程序後,指令指針寄存器也會指向B的代碼段)。
  • 總線有位址總線的位數決定尋址範圍,資料總線的位數決定一次讀取多少資料。

02、x86平台

關鍵詞: 開放、統一、相容

了解: 約定俗成

X86架構(CPU、總線、記憶體)

03、x86平台處理器(8086處理器和32位處理器)

04、總結

05、練習題

# 了解下彙編指令:
mov, call, jmp, int, ret, add, or, xor, shl, shr, push, pop, inc, dec, sub, cmp

# 答案: 
move a b :把b值賦給a,使a=b
call和ret :call調用子程式,子程式以ret結尾
jmp :無條件跳
int :中斷指令
add a b : 加法,a=a+b
or :或運算
xor :異或運算
shl :算術左移
ahr :算術右移
push xxx :壓xxx入棧
pop xxx: xxx出棧
inc: 加1
dec: 減1
sub a b : a=a-b
cmp: 減法比較,修改标志位
      

參考資料

  • 極客時間 - x86架構
  • x86 Assembly Guide
  • Linux學習筆記《六》

繼續閱讀