介紹:Hello, World Below
第1章 布爾邏輯
1.1 背景知識
1.1.1 布爾代數
1.1.2 門邏輯
1.1.3 實際硬件結構
1.1.4 硬件描述語言(HDL)
1.1.5 硬件仿真
1.2 規(guī)范詳述
1.2.1 Nand門
1.2.2 基本邏輯門
1.2.3 多位基本門
1.2.4 多通道邏輯門
1.3 實現
1.4 觀點
1.5 項目
第2章 布爾運算
2.1 背景知識
2.2 規(guī)范詳述
2.2.1 加法器
2.2.2 算術邏輯單元(ALU)
2.3 實現
2.4 觀點
2.5 項目
第3章 時序邏輯
3.1 背景知識
3.2 規(guī)范詳述
3.2.1 D觸發(fā)器
3.2.2 寄存器
3.2.3 存儲
3.2.4 計數器
3.3 實現
54353.4 觀點
54363.5 項目
5437第4章 機器語言
54384.1 背景知識
54394.1.1 機器
54404.1.2 語言
54414.1.3 命令
54424.2 Hack機器語言規(guī)范詳述
54434.2.1 概述
54444.2.2 A-指令
54454.2.3 C-指令
5 64.2.4 符號
54474.2.5 輸入/輸出處理
54484.2.6 語法規(guī)約和文件格式
54494.3 觀點
54504.4 項目
5451第5章 計算機體系結構
54525.1 背景知識
54535.1.1 存儲程序概念
54545.1.2 馮?諾依曼結構
54555.1.3 內存
565.1.4 中央處理器
54575.1.5 寄存器
54585.1.6 輸入和輸出
54595.2 Hack硬件平臺規(guī)范詳述
54605.2.1 概述
54615.2.2 中央處理器(CPU)
54625.2.3 指令內存
54635.2.4 數據內存
54645.2.5 計算機
54655.3 實現
54665.3.1 中央處理器
54675.3.2 內存
54685.3.3 計算機
54695.4 觀點
54705.5 項目
5471第6章 匯編編譯器
54726.1 背景知識
54736.2 Hack匯編到二進制的翻譯規(guī)范詳述
54746.2.1 語法規(guī)約和文件格式
54756.2.2 指令
54766.2.3 符號
54776.2.4 范例
54786.3 實現
54796.3.1 Parser模塊
54806.3.2 Code模塊
54816.3.3 無符號程序的匯編編譯器
54826.3.4 SymbolTable模塊
54836.3.5 有符號程序的匯編編譯器
54846.4 觀點
54856.5 項目
5486第7章 虛擬機Ⅰ:堆棧運算
54877.1 背景知識
54887.1.1 虛擬機范型
54897.1.2 堆棧機模型
54907.2 VM規(guī)范詳述,89第I部分
54917.2.1 概論
54927.2.2 算術命令和邏輯命令
54937.2.3 內存訪問命令
54947.2.4 程序流程控制命令和函數調用命令
54957.2.5 Jack-VM-Hack 平臺中的程序元素
54967.2.6 VM編程實例
54977.3 實現
54987.3.1 Hack平臺上的標準VM映射,97第I部分
549 .3.2 關于VM設計實現的建議
54007.3.3 程序結構
54017.4 觀點
54027.5 項目
5403第8章 虛擬機Ⅱ:程序控制
54048.1 背景知識
54058.1.1 程序控制流
54068.1.2 子程序調用
54078.2 VM規(guī)范詳述,106第Ⅱ部分..
54088.2.1 程序控制流命令
54098.2.2 函數調用命令
54 .2.3 函數調用協(xié)議
54118.2.4 初始化
54128.3 實現
54138.3.1 Hack平臺上的標準VM映射,112第Ⅱ部分
54148.3.2 范例
54158.3.3 VM實現的設計建議
54168.4 觀點
54178.5 項目
5418第9章 高級語言
54199.1 背景知識
54209.1.1 范例1:Hello World
54219.1.2 范例2:過程化編程和數組處理
54229.1.3 范例3:抽象數據類型
54239.1.4 范例4:鏈表實現
54249.2 Jack語言規(guī)范詳述
54259.2.1 語法要素
54269.2.2 程序結構
54279.2.3 變量
54289.2.4 語句
54299.2.5 表達式
54309.2.6 子程序調用
54319.2.7 Jack標準庫
54329.3 編寫Jack應用程序
54339.4 觀點
54349.5 項目
5435第10章 編譯器Ⅰ:語法分析
543610.1 背景知識
543710.1.1 詞法分析
543810.1.2 語法
543910.1.3 語法分析(Parsing)
544010.2 規(guī)范詳述
544110.2.1 Jack語言語法
544210.2.2 Jack語言的語法分析器
544310.2.3 語法分析器的輸入
544410.2.4 語法分析器的輸出
544510.3 實現
544610.3.1 JackAnalyzer模塊
544710.3.2 JackTokenizer模塊
544810.3.3 CompilationEngine模塊
544910.4 觀點
545010.5 項目
5451第11章 編譯器Ⅱ:代碼生成
545211.1 背景知識
545311.1.1 數據翻譯
545411.1.2 命令翻譯
545511.2 規(guī)范詳述
545611.2.1 虛擬機平臺之上的標準映射
545711.2.2 編譯過程舉例
545811.3 實現
545911.3.1 JackCompiler模塊
546011.3.2 JackTokenizer模塊
546111.3.3 SymbolTabel模塊
546211.3.4 VMWriter模塊
546311.3.5 CompilationEngine模塊
546411.4 觀點
546511.5 項目
5466第12章 操作系統(tǒng)
546712.1 背景知識
546812.1.1 數學操作
546912.1.2 數字的字符串表示
547012.1.3 內存管理
547112.1.4 變長數組和字符串
547212.1.5 輸入/輸出管理
547312.2 Jack OS規(guī)范詳述
547412.2.1 Math
547512.2.2 String
547612.2.3 Array
547712.2.4 Output
547812.2.5 Screen
547912.2.6 Keyboard
548012.2.7 Memory
548112.2.8 Sys
548212.3 實現
548312.3.1 Math
548412.3.2 String
548512.3.3 Array
548612.3.4 Output
548712.3.5 Screen
548812.3.6 Keyboard
548912.3.7 Memory
549012.3.8 Sys
549112.4 觀點
549212.5 項目
5493第13章 后記:發(fā)掘更多樂趣
549413.1 硬件的實現
549513.2 硬件的改進
549613.3 高級語言
549713.4 優(yōu)化
549813.5 通信
5499附錄A: 硬件描述語言(HDL)
5400A.1 范例
5401A.2 約定
5402A.3 將芯片加載到硬件仿真器
5403A.4 芯片描述頭(接口)
5404A.5 芯片描述體(實現)
5405A.5.1 單元
5406A.5.2 管腳和連接
5407A.5.3 總線
5408A.6 內置芯片
5409A.7 時序芯片
5410A.7.1 時鐘
5411A.7.2 時鐘芯片和管腳
5412A.7.3 反饋環(huán)
5413A.8 芯片操作的可視化
5414A.9 已經提供的內置芯片與新的內置芯片
5415附錄B: 測試腳本語言
5416B.1 文件的格式和用法
5417B.2 在硬件仿真器中測試芯片
5418B.2.1 范例
5419B.2.2 數據類型和變量
5420B.2.3 腳本命令
5421B.2.4 內置芯片的方法和變量
5422B.2.5 范例
5423B.2.6 默認腳本
5424B.3 在CPU仿真器中測試機器語言程序
5425B.3.1 范例
5426B.3.2 變量
5427B.3.3 命令
5428B.3.4 默認腳本
5429B.4 在VM仿真器中測試VM程序
5430B.4.1 范例
5431B.4.2 變量
5432B.4.3 命令
5433B.4.4 默認腳本
5434索引...