程式設計師的計算機硬體知識 PDF檔案
程式設計師的計算機硬體知識 PDF檔案
GITHUB : https://github.com/jash-git/Jash-good-idea-20211031-001/tree/main/%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E5%B8%AB%E7%9A%84%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A1%AC%E9%AB%94%E7%9F%A5%E8%AD%98
目錄:
CPU是什麼; 3
CPU 實際做什麼; 3
CPU 的內部結構; 4
CPU 是寄存器的集合體; 5
電腦語言; 5
組合語言; 6
程式計數器; 7
條件分支和迴圈機制; 8
標誌寄存器; 9
函式呼叫機制; 9
通過位址和索引實現陣列; 11
CPU 指令執行過程; 12
什麼是記憶體; 13
記憶體的物理結構; 13
記憶體的讀寫過程; 14
記憶體的現實模型; 15
記憶體的使用; 17
指針(指標); 17
陣列是記憶體的實現; 18
棧和佇列; 19
棧(堆疊); 19
佇列; 21
鏈表; 23
二叉樹; 24
為什麼用二進位表示; 25
什麼是二進位數字; 27
移位運算和乘除的關係; 27
便於電腦處理的補數; 28
算數右移和邏輯右移的區別; 31
邏輯運算的竅門; 33
認識壓縮演算法; 34
檔存儲; 34
壓縮演算法的定義; 35
幾種常用壓縮演算法的理解; 35
RLE 演算法的機制; 35
RLE 演算法的缺點; 37
哈夫曼演算法和莫爾斯編碼; 38
用二叉樹實現哈夫曼演算法; 39
哈夫曼樹能夠提升壓縮比率; 41
可逆壓縮和非可逆壓縮; 41
認識磁片; 42
程式不讀入記憶體就無法運行; 44
磁片構件; 45
磁片緩存; 45
虛擬記憶體; 46
虛擬記憶體與記憶體的交換方式; 46
節約記憶體; 47
通過 DLL 檔實現函數共有; 47
通過調用 _stdcall 來減少程式檔的大小; 48
磁片的物理結構; 50
作業系統環境; 51
Windows 作業系統克服了CPU以外的硬體差異; 52
不同作業系統的 API 差異性; 53
FreeBSD Port 幫你輕鬆使用原始程式碼; 53
可以使用虛擬機器獲取其他環境; 54
提供相同運行環境的 Java 虛擬機器; 54
BIOS 和引導; 55
作業系統功能的歷史; 56
要把作業系統放在第一位; 57
系統調用和程式設計語言的移植性; 59
作業系統和高級程式設計語言使硬體抽象化; 60
Windows 作業系統的特徵; 61
32位元作業系統; 61
通過 API 函數集來提供系統調用; 62
提供採用了 GUI 的使用者介面; 62
通過 WYSIWYG 實現列印輸出; 62
提供多工功能; 62
提供網路功能和資料庫功能; 63
通過隨插即用實現設備驅動的自動設定; 63
組合語言和本地代碼; 64
通過編譯器輸出組合語言的原始程式碼; 65
不會轉換成本地代碼的虛擬指令; 67
組合語言的語法是 操作碼 + 運算元; 68
指令解析; 70
函數的調用機制; 71
函數的內部處理; 72
全域變數和區域變數; 74
臨時確保區域變數使用的記憶體空間; 77
迴圈控制語句的處理; 80
條件分支的處理方法; 81
瞭解程式運行邏輯的必要性; 82
應用和硬體的關係; 85
支援硬體輸入輸出的 IN 指令和 OUT 指令; 86
測試輸入和輸出程式; 87
週邊設備的插斷要求; 88
用中斷來實現即時處理; 91
利用 DMA 實現短時間內大量資料傳輸; 92
文字和圖片的顯示機制; 92
完整圖文(150 DPI)