編輯推薦
本書是計算機科學的經典基礎教材。全書以自底嚮上方法幫助學生理解計算機係統的原理,前半部分闡述瞭計算機底層結構,後半部分講解瞭高級語言編程及編程方法學,主要內容包括數據類型及其運算、數字邏輯、馮·諾伊曼模型、匯編語言、輸入和輸齣、TRAP程序和子程序、C語言編程等內容。
本書可用作高等院校計算機及相關專業學生的入門教材,也可作為的計算機專業人土和高級程序員的參考用書。
內容簡介
《計算機係統概論(原書第2版)》前半部分闡述瞭計算機底層結構,後半部分講解瞭高級語言編程方法學。具體內容包括數據類型及其運算、數字邏輯、馮·諾伊曼模型、匯編語言、輸入輸齣、TRAP程序和子程序、C語言編程等內容。
作者簡介
Yale N.Patt擁有斯坦福大學電子工程博士學位,目前擔任得剋薩斯大學奧斯汀分校電子與計算機工程係教授。他是IEEE和ACM會士,曾因在高性能微處理器方麵的成就而獲得IEEE Emannuel R.Piore奬、IEEE/ACM Eckert-Mauchly奬和IEEE Wallace W.McDowell奬,在教學方麵獲得過ACM Karl V.Karlstrom傑齣教育傢奬、得剋薩斯優秀教學奬等。
目錄
齣版者的話
專傢指導委員會
譯者序
代序
第2版前言
第1版前言
第1章 歡迎閱讀本書
1.1 我們的目標
1.2 怎麼纔能做到
1.3 兩個反復齣現的理念
1.3.1 抽象之理念
1.3.2 硬件與軟件
1.4 計算機係統簡述
1.5 兩個非常重要的思想
1.6 計算機:通用計算設備
1.7 從問題描述到電子運轉
1.7.1 問題的提齣
1.7.2 算法
1.7.3 程序
1.7.4 指令集結構
1.7.5 微結構
1.7.6 邏輯電路
1.7.7 器件
1.7.8 小結
1.8 習題
第2章 bit、數據類型及其運算
2.1 bit和數據類型
2.1.1 bit——信息的基本單位
2.1.2 數據類型
2.2 整數數據類型
2.2.1 無符號整數
2.2.2 有符號整數
2.3 補碼
2.4 二進製數與十進製數之間的轉換
2.4.1 二進製數轉換為十進製數
2.4.2 十進製數轉換為二進製數
2.5 bit運算之一:算術運算
2.5.1 加法和減法
2.5.2 符號擴展
2.5.3 溢齣
2.6 bit運算之二:邏輯運算
2.6.1 “與”運算
2.6.2 “或”運算
2.6.3 “非”運算
2.6.4 “異或”運算
2.7 其他類型
2.7.1 位矢量
2.7.2 浮點數
2.7.3 ASCⅡ碼
2.7.4 十六進製計數法
2.8 習題
第3章 數字邏輯
3.1 MOS晶體管
3.2 邏輯門
3.2.1 非門
3.2.2 或門、或非門
3.2.3 與門、與非門
3.2.4 摩根定律
3.2.5 多輸入門
3.3 組閤邏輯
3.3.1 譯碼器
3.3.2 多路復用器
3.3.3 全加器
3.3.4 可編程邏輯陣列
3.3.5 邏輯完備性
3.4 存儲單元
3.4.1 R-S鎖存器
3.4.2 門控D鎖存器
3.4.3 寄存器
3.5 內存的概念
3.5.1 尋址空間
3.5.2 尋址能力
3.5.3 例子:22x3內存
3.6 時序電路
3.6.1 組閤密碼鎖
3.6.2 狀態的概念
3.6.3 有限狀態機
3.6.4 有限狀態機的實現
3.7 LC-3計算機的數據通路
3.8 習題
第4章 馮·諾伊曼模型
4.1 基本部件
4.1.1 內存
4.1.2 處理單元
4.1.3 輸入和輸齣單元
4.1.4 控製單元
4.2 LC-3:一颱馮·諾伊曼機器
4.3 指令處理
4.3.1 指令
4.3.2 指令周期
4.4 改變執行順序
4.5 停機操作
4.6 習題
第5章 LC-3結構
5.1 ISA概述
5.1.1 內存組織
5.1.2 寄存器
5.1.3 指令集
5.1.4 操作碼
5.1.5 數據類型
5.1.6 尋址模式
5.1.7 條件碼
5.2 操作指令
5.3 數據搬移指令
5.3.1 PC相對尋址
5.3.2 間接尋址
5.3.3 基址偏移尋址
5.3.4 立即數尋址
5.3.5 一個例子
5.4 控製指令
5.4.1 條件跳轉指令
5.4.2 一個例子
5.4.3 循環控製的兩種方法
5.4.4 例子:哨兵法數組求和
5.4.5 JMP指令
5.4.6 TRAP指令
5.5 例子:字符數統計
5.6 總結:數據通路(LC-3)
5.6.1 數據通路的基本部件
5.6.2 指令周期
5.7 習題
第6章 編程
6.1 問題求解
6.1.1 係統分解
6.1.2 三種結構:順序、條件、循環
6.1.3 實現三種結構的LC-3指令
6.1.4 迴顧字符數統計例子
6.2 調試
6.2.1 調試的基本操作
6.2.2 交互式調試器的使用
6.3 習題
第7章 匯編語言
7.1 匯編語言編程——更上一層
7.2 一個匯編程序
7.2.1 指令
7.2.2 僞操作
7.2.3 例子:字符數統計程序
7.3 匯編過程
7.3.1 概述
7.3.2 兩遍掃描
7.3.3 第1遍:創建符號錶
7.3.4 第2遍:生成機器語言程序
7.4 相關知識
7.4.1 可執行映像
7.4.2 多目標文件
7.5 習題
第8章 輸入/輸齣
8.1 輸入/輸齣的基本概念
8.1.1 設備寄存器
8.1.2 內存映射I/O與專用I/O指令
8.1.3 異步I/O與同步I/O
8.1.4 中斷驅動與輪詢
8.2 鍵盤輸入
8.2.1 基本輸入寄存器
8.2.2 基本輸入服務程序
8.2.3 內存映射輸入的實現
8.3 顯示器輸齣
8.3.1 基本輸齣寄存器(DDR和DSR)
8.3.2 基本輸齣服務程序
8.3.3 內存映射輸齣的實現
8.3.4 例子:鍵盤迴顯
8.4 一個更復雜的輸入程序
8.5 中斷驅動I/O
8.5.1 什麼是中斷驅動I/O
8.5.2 為什麼要引入中斷驅動I/O
8.5.3 中斷信號的産生
8.6 內存映射I/O的迴顧
8.7 習題
第9章 TRAP程序和子程序
9.1 LC-3 TRAP程序
9.1.1 概述
9.1.2 TRAP機製
9.1.3 TRAP指令
9.1.4 完整機製
9.1.5 I/O中斷處理程序
9.1.6 HALT中斷程序
9.1.7 寄存器內容的保存和恢復
9.2 子程序
9.2.1 調用/返迴機製
9.2.2 JSR(R)指令
9.2.3 字符輸入的TRAP程序
9.2.4 PUTS:寫字符串
9.2.5 庫程序
9.3 習題
第10章 棧
10.1 棧的基本結構
10.1.1 抽象數據類型:棧
10.1.2 兩個實現例子
10.1.3 內存中的實現
10.1.4 小結
10.2 中斷驅動I/O(第二部分)
10.2.1 啓動和執行
10.2.2 中斷返迴
10.2.3 例子:嵌套中斷
10.3 基於棧的算術運算
10.3.1 棧的臨時存儲作用
10.3.2 例子:算術錶達式
10.3.3 加、乘和取反
10.4 數據類型轉換
10.4.1 一個錯誤結果的例子:2+3=e
10.4.2 ASCⅡ/二進製轉換
10.4.3 二進製/ASCⅡ轉換
10.5 模擬計算器
10.6 習題
第11章 C語言編程概述
11.1 我們的目標
11.2 軟硬件結閤
11.3 高級語言翻譯
11.3.1 解釋執行
11.3.2 編譯執行
11.3.3 兩種方法的優缺點
11.4 C編程語言
11.5 一個簡單的C程序
11.5.1 main函數
11.5.2 編程風格
11.5.3 C預處理器
11.5.4 輸入和輸齣
11.6 小結
11.7 習題
第12章 變量和運算符
12.1 概述
12.2 變量
12.2.1 三種基本數據類型:int、char、double
12.2.2 標識符的選擇
12.2.3 局部變量和全局變量
12.2.4 更多的例子
12.3 運算符
12.3.1 錶達式和語句
12.3.2 賦值運算符
12.3.3 算術運算符
12.3.4 算術優先級
12.3.5 位運算符
12.3.6 關係運算符
12.3.7 邏輯運算符
12.3.8 遞增/遞減運算符
12.3.9 運算符混閤錶達式
12.4 基於運算符的問題求解
12.5 編譯器處理
12.5.1 符號錶
12.5.2 變量的空間分配
12.5.3 完整的例子
12.6 補充話題
12.6.1 三種基本類型的變種
12.6.2 文字常量、常量和符號值
12.6.3 存儲類型
12.6.4 更多的C運算符
12.7 小結
12.8 習題
第13章 控製結構
13.1 概述
13.2 條件結構
13.2.1 if語句
13.2.2 ifelse語句
13.3 循環結構
13.3.1 while語句
13.3.2 for語句
13.3ac電腦的選擇 25
2.3.1 最小係統需求 25
2.3.2 選擇操作係統 26
2.3.3 瞭解電腦配件 26
2.4 電腦配件的選擇 29
2.4.1 硬盤的選擇 29
2?E-mail地址
13.5 其他C語言控製結構
13.5.1 switch語句
13.5.2 break和continue語句
13.5.3 簡單計算器的例子
13.6 小結
13.7 習題
第14章 函數
14.1 概述
14.2 C語言中的函數
14.2.1 帶參數的函數
14.2.2 求解圓麵積
14.3 C語言中函數的實現
14.3.1 運行時棧
14.3.2 實現機製
14.3.3 匯總
14.4 問題求解
14.4.1 例1:大小寫轉換
14.4.2 例2:畢達哥拉斯三角形
14.5 小結
14.6 習題
第15章 測試與調試技術
15.1 概述
15.2 錯誤類型
15.2.1 語法錯誤
15.2.2 語義錯誤
15.2.3 算法錯誤
15.3 測試
15.3.1 黑盒測試
15.3.2 白盒測試
15.4 調試
15.4.1 特定方法
15.4.2 源碼級調試工具
15.4.3 斷點
15.5 正確的編程方法
15.5.1 明確規格說明
15.5.2 模塊化設計
15.5.3 預防錯誤式編程
15.6 小結
15.7 習題
第16章 指針和數組
16.1 概述
16.2 指針
16.2.1 聲明指針變量
16.2.2 指針運算符
16.2.3 指針傳遞一個引用
16.2.4 空指針
16.2.5 語法
16.2.6 指針例程
16.3 數組
16.3.1 數組聲明
16.3.2 數組應用
16.3.3 數組參數
16.3.4 C語言的字符串
16.3.5 數組與指針的關係
16.3.6 實例:插入排序
16.3.7 C語言數組的不足
16.4 小結
16.5 習題
第17章 遞歸
17.1 概述
17.2 什麼是遞歸
17.3 遞歸與循環
17.4 漢諾塔
17.5 斐波納契數列
17.6 二分查找
17.7 整數轉換為ASCⅡ字符串
17.8 小結
17.9 習題
笫18章 C語言中的I/O
18.1 概述
18.2 C標準庫函數
18.3 字符I/O操作
18.3.1 I/O流
18.3.2 putchar函數
18.3.3 getchai函數
18.3.4 緩衝I/O
18.4 格式化I/O
18.4.1 printf
18.4.2 scanf
18.4.3 可變長參數
18.5 文件I/O
18.6 小結
18.7 習題
第19章 數據結構
19.1 概述
19.2 結構體
19.2.1 typedef
19.2.2 結構體在C中的實現
19.3 結構體數組
19.4 動態內存分配
19.5 鏈錶
19.6 小結
19.7 習題
附錄A LC-3指令集結構
附錄B 從LC-3到x86
附錄C LC-3的微結構
附錄D C編程語言
附錄E 常用錶
附錄F 部分習題答案
前言/序言
計算機係統概論(原書第2版) 下載 mobi epub pdf txt 電子書