基礎定義
集成電路(Integrated Circuit):CPU 和 內 存 是 由 許 多 晶 體 管 組 成 的 電 子 部 件
CPU 組成: 是用來表示計算機內部元件功能的術語,包含寄存器、控制器、運算器和時鐘四個部分,各部分之間由電流信號相互連通
寄存器:用來暫存指令、數據等處理對象
控制器:負責把內存上的指令、數據等讀入寄存器,並根據指令的執行結果來控制整個計算機
運算器:負責運算從內存讀入寄存器的數據
時鐘:負責發出 CPU 開始計時的時鐘信號
補充
時鐘信號英文叫作 clock puzzle。Pentium 2 GHz 表示時鐘信號的頻率爲2 GHz(1 GHz = 10 億次 / 秒)。也就是說,時鐘信號的頻率越高,CPU 的運行速度越快。
內存:通常所說的內存指的是計算機的主存儲器(main memory),主存通過控制芯片等與 CPU 相連,主要負責存儲指令和數據。
補充
主存通常使用 DRAM(Dynamic Random Access Memory,動態隨機存取存儲器)芯片。DRAM 可以對任何地址進行數據的讀寫操作,但需要保持穩定的電源供給並時常刷新(確保是最新數據),關機後內容將自動清除。
彙編語言: 用助記符(memonic)來編寫程序,每一個原本是電氣信號的機器語言指令都會有一個與其相應的助記符,助記符通常爲指令功能的英語單詞的簡寫
補充
mov 和 add 分別是數據的存儲(move)和相加(addition)的簡寫。彙編語言和機器語言基本上是一一對應的
mov eax, dword ptr [ebp-8] …把數值從內存複製到 eax
add eax, dword ptr [ebp-0Ch] …exa 的數值和內存的數值相加
mov dword ptr [ebp-4], eax …把 exa 的數值(上一步的相加結果)存儲在內存中
高級編程語言:是指能夠使用類似於人類語言的語法來記述的編程語言的總稱(Java,C,C++等)
機器語言:是指 CPU 能夠直接解釋和執行的語言
圖:
彙編:通常我們將彙編語言編寫的程序轉化成機器語言的過程稱爲彙編
寄存器詳解
主要功能
種 類 | 功 能 |
---|---|
累加寄存器(accumulator register) | 存儲執行運算的數據和運算後的數據 |
標誌寄存器(flag register) | 存儲運算處理後的 CPU 的狀態 |
程序計數器(program counter) | 存儲下一條指令所在內存的地址 |
基址寄存器(base register) | 存儲數據內存的起始地址 |
變址寄存器(index register) | 存儲基址寄存器的相對地址 |
通用寄存器(general purpose register) | 存儲任意數據 |
指令寄存器(instruction register) | 存儲指令。CPU 內部使用,程序員無法通過程序對該寄存器進行讀寫操作 |
棧寄存器(stack register) | 存儲棧區域的起始 |
32位 和 64位的操作系統的本質區別?
1 位(bit =binary digit)就是一個位數的二進制數,表示 0 或 1 的數值。32位 CPU 指的就是用 32 位的二進制數來表示數據及地址的數值。
1 位(bit =binary digit)就是一個位數的二進制數,表示 0 或 1 的數值。32位 CPU 指的就是用 32 位的二進制數來表示數據及地址的數值。
根據cpu就一次處理數據的能力,把處理器分爲了32位和64位
32位操作系統可以尋址2的32次方個字節的內存範圍,64位操作系統則可尋址2的64次方個字節的內存範圍。換句話說,32位的操作系統理論上只能使用約4GB的內存,要是程序想使用超過4GB的內存,那麼就要選擇64位的操作系統。顯然,64位比32的內存容量要大很多,內存容量的大小對運算速度有一定的影響,因而64位的運算速度理論上來說比32位快。
爲什麼通常使用 16 進制數來替代二進制數據?
二進制數的位數較多、不易理解時,通常使用十六進制數來代替二進制數(容易對照,易於理解)
我們用 A~F 來分別表示 10~15,那 麼,二進制數的 4 位(0000 ~1111)就可以用十六進制數的 1 位(0~F)來表示
2的4次方是16,16種變化剛好窮盡。
對照表
二進制 | 十六進制 |
---|---|
0 | (0000) |
1 | (0001) |
2 | (0010) |
3 | (0011) |
4 | (0100) |
5 | (0101) |
6 | (0110) |
7 | (0111) |
8 | (1000) |
9 | (1001) |
A | (1010) |
B | (1011) |
C | (1100) |
D | (1101) |
E | (1110) |
F | (1111) |
條件分支和循環機制
順序執行 是指按照地址內容的順序執行指令
循環 是指重複執行同一地址的指令
條件分支 是指根據條件執行任意地址的指令
條件與循環方面的設計通常會用到條件限制,而條件當中的比較指令的本質又是什麼呢?
比較指令 就是在 CPU 的內部做減法運算,依據計算出的值爲 -1,0,1 來進行相應地址跳轉
函數調用機制
使用的關鍵指令及功能
1、函數調用使用的是 call 指令
2、函數處理完畢後,再通過函數的出口來執行 return 命令,return 命令的功能是把保存在棧中的地址設定到程序計數器中
圖:
CPU的常見指令彙總
類 型 | 功 能 |
---|---|
數據轉送指令(MOV,MOVX,PUSH等) | 寄存器和內存、內存和內存、寄存器和外圍設備之間的數據讀寫操作 |
運算指令(INC,DEC,DIV等) | 用累加寄存器執行算術運算、邏輯運算、比較運算和移位運算 |
跳轉指令(JMP,RET等) | 實現條件分支、循環、強制跳轉等 |
call/return 指令 | 函數的調用 / 返回調用前的地址 |