計算機系統要素:如何從頭構建一臺現代計算機(原書第2版)
- 出版商: 機械工業
- 出版日期: 2025-05-01
- 售價: $474
- 語言: 簡體中文
- ISBN: 7111769570
- ISBN-13: 9787111769576
- 此書翻譯自: The Elements of Computing Systems: Building a Modern Computer from First Principles, 2/e (Paperback)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書涵蓋數電、體系結構、匯編語言、編譯器、操作系統等計算機核心課程的基礎內容,結合項目實踐能夠對整個計算機學科建立宏觀的理解,並能完成製作一個基本計算機系統的任務。
目錄大綱
譯者序
前言
第一分 硬件
I.1 Hello,World之下 2
I.2 從與非門到俄羅斯方塊 3
I.3 抽象與實現 4
I.4 設計方法 5
I.5 前方之路 6
第1章 布爾邏輯 7
1.1 布爾代數 7
1.1.1 布爾函數 8
1.1.2 真值表和布爾表達式 8
1.2 門 9
1.3 硬件構造 10
1.3.1 硬件描述語言 11
1.3.2 硬件模擬 13
1.4 規範 14
1.4.1 與非門 14
1.4.2 基本邏輯門 14
1.4.3 基本門的多位版本 15
1.4.4 基本門的多路版本 16
1.5 實現 17
1.5.1 行為模擬 17
1.5.2 硬件實現 18
1.5.3 內置芯片 19
1.6 實驗 19
1.7 總結與討論 20
第2章 布爾運算 21
2.1 算術運算 21
2.2 二進制數 21
2.3 二進制加法 22
2.4 有符號二進制數 23
2.5 規範 24
2.5.1 加法器 24
2.5.2 算術邏輯單元 25
2.6 實現 28
2.7 實驗 29
2.8 總結與討論 29
第3章 存儲 31
3.1 存儲設備 31
3.2 時序邏輯 32
3.2.1 時間很重要 32
3.2.2 觸發器 34
3.2.3 組合與時序邏輯 34
3.3 規範 35
3.3.1 數據觸發器 36
3.3.2 寄存器 36
3.3.3 RAM 37
3.3.4 計數器 38
3.4 實現 38
3.4.1 數據觸發器 38
3.4.2 寄存器 38
3.4.3 RAM 39
3.4.4 計數器 40
3.5 實驗 40
3.6 總結與討論 41
第4章 機器語言 42
4.1 機器語言概述 42
4.1.1 硬件單元 42
4.1.2 語言 43
4.1.3 指令 44
4.2 Hack的機器語言 45
4.2.1 背景 45
4.2.2 程序示例 48
4.2.3 Hack語言規範 49
4.2.4 符號 50
4.2.5 輸入/輸出處理 52
4.2.6 語法約定和文件格式 52
4.3 Hack編程 53
4.4 實驗 55
4.5 總結與討論 57
第5章 計算機體系結構 58
5.1 計算機體系結構基礎 58
5.1.1 存儲程序的概念 58
5.1.2 馮·諾依曼體系結構 59
5.1.3 存儲器 59
5.1.4 中央處理單元 60
5.1.5 輸入和輸出 61
5.2 Hack硬件平臺規範 62
5.2.1 概述 62
5.2.2 中央處理單元 62
5.2.3 指令存儲器 63
5.2.4 輸入/輸出 63
5.2.5 數據存儲器 65
5.2.6 計算機 66
5.3 實現 66
5.3.1 中央處理單元 66
5.3.2 內存 68
5.3.3 計算機 68
5.4 實驗 69
5.5 總結與討論 70
第6章 匯編器 72
6.1 背景 72
6.2 Hack機器語言規範 73
6.2.1 程序 74
6.2.2 符號 74
6.2.3 語法約定 75
6.3 匯編到二進制的翻譯 76
6.3.1 處理指令 76
6.3.2 處理符號 76
6.4 實現 77
6.4.1 實現一個基本的匯編器 77
6.4.2 完成匯編器 79
6.5 實驗 79
6.6 總結與討論 81
第二分 軟件
II.1 Jack編程初探 85
II.2 程序的編譯 87
第7章 虛擬機Ⅰ:處理 89
7.1 虛擬機範式 90
7.2 棧機器 91
7.2.1 入棧和出棧 91
7.2.2 棧上的算術運算 92
7.2.3 虛擬內存段 94
7.3 虛擬機規範:第一分 94
7.4 實現 95
7.4.1 Hack平臺上的標準虛擬機
映射:第一分 96
7.4.2 虛擬機模擬器 98
7.4.3 有關虛擬機實現的設計建議 99
7.5 實驗 101
7.6 總結與討論 102
第8章 虛擬機Ⅱ:控制 105
8.1 高級魔法 105
8.2 分支 106
8.3 函數 108
8.4 虛擬機規範:第二分 113
8.4.1 分支命令 113
8.4.2 函數命令 113
8.4.3 虛擬機程序 113
8.5 實現 114
8.5.1 函數調用和返回 114
8.5.2 Hack平臺上的標準虛擬機
映射:第二分 115
8.5.3 有關虛擬機實現的設計建議 117
8.6 實驗 118
8.7 總結與討論 120
第9章 高級語言 122
9.1 例子 122
9.2 Jack語言規範 126
9.2.1 語法元素 126
9.2.2 程序結構 127
9.2.3 數據類型 128
9.2.4 變量 130
9.2.5 語句 130
9.2.6 表達式 130
9.2.7 子例程調用 131
9.2.8 對象的創建與 132
9.3 編寫Jack應用程序 132
9.4 實驗 133
9.5 總結與討論 134
第10章 編譯器Ⅰ:語法分析 136
10.1 背景 137
10.1.1 詞法分析 137
10.1.2 語法規則 138
10.1.3 語法解析 139
10.1.4 解析器 141
10.2 規範 142
10.2.1 Jack語言的語法 143
10.2.2 Jack語言的語法分析器 144
10.3 實現 144
10.3.1 Jack分詞器 145
10.3.2 編譯引擎 145
10.3.3 Jack分析器 147
10.4 實驗 147
10.4.1 分詞器 148
10.4.2 編譯引擎 149
10.5 總結與討論 150
第11章 編譯器Ⅱ:代碼生成 151
11.1 代碼生成 152
11.1.1 變量的編譯 152
11.1.2 表達式的編譯 155
11.1.3 字符串的編譯 157
11.1.4 語句的編譯 157
11.1.5 對象的編譯 159
11.1.6 數組的編譯 165
11.2 規範 166
11.3 實現 166
11.3.1 虛擬機上的標準映射 167
11.3.2 實現指南 167
11.3.3 軟件架構 170
11.4 實驗 172
11.4.1 實施段 172
11.4.2 測試程序集 173
11.5 總結與討論 174
第12章 作系統 176
12.1 背景 177
12.1.1 數學運算 177
12.1.2 字符串 180
12.1.3 內存管理 181
12.1.4 圖形化輸出 183
12.1.5 字符的輸出 185
12.1.6 鍵盤輸入 186
12.2 Jack作系統規範 187
12.3 實現 187
12.4 實驗 192
12.4.1 測試計劃 192
12.4.2 完整測試 194
12.5 總結與討論 195
第三分 進一步討論
第13章 探索更多樂趣 198
13.1 硬件的實現 198
13.2 硬件的改進 199
13.3 高級語言 199
13.4 化 199
13.5 通信 199
附錄
附錄A 布爾函數綜合 202
附錄B 硬件描述語言 206
附錄C 測試描述語言 217
附錄D Hack芯片集合 227
附錄E Hack中的字符集 228
附錄F Jack作系統的API 229