描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111608097
内容简介
本书融合计算机学科的“计算机组成原理”、“微机原理”和“汇编语言程序设计”课程的基本内容,同时补充“数字逻辑”课程基础知识、延伸有“计算机系统结构”课程核心概念,结合C语言和汇编语言编程实践,从软件角度理解计算机系统的工作原理,为软件编程应用和硬件技术深入奠定学科基础。
目 录
前言
教学建议
第1章 计算机系统概述 1
1.1 计算机的发展 1
1.1.1 计算机发展概况 1
1.1.2 微型计算机的发展 3
1.1.3 Intel 80×86系列处理器 5
1.2 冯·诺依曼计算机结构 6
1.2.1 二进制编码 7
1.2.2 存储程序和程序控制 8
1.2.3 顺序执行 9
1.2.4 组成部件 9
1.3 计算机系统的组成 10
1.3.1 计算机的硬件组成 10
1.3.2 计算机的总线结构 14
1.3.3 计算机系统的层次结构 19
1.3.4 计算机系统的软件组成 23
习题 28
第2章 数据表示 29
2.1 数制 29
2.1.1 二进制和十六进制 29
2.1.2 数制之间的转换 31
2.2 整数编码 33
2.2.1 定点整数格式 33
2.2.2 有符号整数编码 34
2.2.3 整数的类型转换 38
2.2.4 整数的加减运算及溢出 41
2.2.5 整数的移位运算 46
2.2.6 整数运算的数学性质 47
2.3 字符编码 48
2.3.1 ASCII 48
2.3.2 Unicode 53
2.4 实数编码 53
2.4.1 浮点数据格式 54
2.4.2 浮点运算的数学性质 61
习题 64
第3章 数字逻辑基础 68
3.1 逻辑代数 68
3.1.1 逻辑关系 68
3.1.2 逻辑代数运算规则 73
3.1.3 逻辑函数的形式、转换及化简 76
3.2 逻辑门电路 78
3.2.1 门电路的实现 78
3.2.2 集成电路 80
3.2.3 三态门 82
3.3 组合逻辑电路 83
3.3.1 编码器 84
3.3.2 译码器 85
3.3.3 加法器 87
3.3.4 多路开关 88
3.4 时序逻辑电路 88
3.4.1 触发器 89
3.4.2 寄存器 93
3.4.3 计数器 94
3.5 可编程逻辑器件 94
3.5.1 PLD概述 95
3.5.2 电子设计自动化 96
习题 99
第4章 处理器 101
4.1 处理器的组成 101
4.1.1 控制器 101
4.1.2 运算器 103
4.2 处理器的结构 103
4.2.1 处理器的基本结构 104
4.2.2 8086的功能结构 105
4.2.3 80386的功能结构 106
4.2.4 Pentium的功能结构 107
4.3 寄存器 109
4.3.1 通用寄存器 109
4.3.2 专用寄存器 111
4.4 存储器组织 113
4.4.1 存储模型 113
4.4.2 工作方式 114
4.4.3 逻辑地址 115
习题 119
第5章 指令系统 121
5.1 指令格式 121
5.1.1 指令编码 121
5.1.2 IA-32指令格式 124
5.2 汇编语言基础 126
5.2.1 汇编语言的语句格式 126
5.2.2 汇编语言的源程序框架 128
5.2.3 汇编语言的开发过程 132
5.2.4 DEVC中C语言的开发过程 137
5.3 汇编语言的常量和变量 141
5.3.1 常量表达 141
5.3.2 变量应用 143
5.4 数据寻址 150
5.4.1 立即数寻址 150
5.4.2 寄存器寻址 151
5.4.3 存储器寻址 151
5.4.4 数据寻址的组合 158
5.5 通用数据处理指令 159
5.5.1 数据传送类指令 160
5.5.2 算术运算类指令 164
5.5.3 位操作类指令 168
习题 172
第6章 汇编语言程序设计 177
6.1 顺序程序结构 177
6.2 分支程序结构 181
6.2.1 指令寻址 181
6.2.2 无条件转移指令 182
6.2.3 条件转移指令 184
6.2.4 单分支程序结构 190
6.2.5 双分支程序结构 191
6.2.6 多分支程序结构 192
6.3 循环程序结构 195
6.3.1 循环指令 195
6.3.2 计数控制循环 198
6.3.3 条件控制循环 199
6.3.4 多重循环 200
6.4 子程序 201
6.4.1 子程序指令 202
6.4.2 子程序设计 205
6.4.3 寄存器传递参数 208
6.4.4 共享变量传递参数 210
6.4.5 堆栈传递参数 212
6.4.6 堆栈帧 215
习题 223
第7章 存储系统 229
7.1 存储系统的层次结构 229
7.1.1 技术指标 230
7.1.2 层次结构 231
7.1.3 局部性原理 232
7.2 主存储器 235
7.2.1 读写存储器 236
7.2.2 ROM 241
7.2.3 半导体存储器的连接 245
7.3 高速缓冲存储器 249
7.3.1 高速缓存的工作原理 249
7.3.2 地址映射 252
7.3.3 替换算法 257
7.3.4 写入策略 258
7.4 存储管理 261
7.4.1 虚拟存储器 261
7.4.2 段式存储管理 262
7.4.3 页式存储管理 264
习题 267
第8章 输入/输出接口 269
8.1 I/O接口概述 269
8.1.1 I/O接口的典型结构 269
8.1.2 I/O端口的编址 271
8.1.3 I/O指令 273
8.2 外设数据的传送方式 274
8.2.1 无条件传送 275
8.2.2 程序查询传送 277
8.2.3 中断传送 279
8.2.4 中断控制系统 283
8.2.5 DMA传送 286
8.3 常用接口技术 289
8.3.1 定时控制接口 289
8.3.2 并行接口 297
8.3.3 异步串行通信接口 300
8.3.4 模拟接口 304
习题 305
第9章 处理器性能提高技术 308
9.1 精简指令集计算机技术 308
9.1.1 复杂指令集和精简指令集 308
9.1.2 MIPS处理器 311
9.2 指令流水线技术 313
9.2.1 指令流水线思想 313
9.2.2 80486的指令流水线 316
9.3 并行处理技术 318
9.3.1 并行性概念 318
9.3.2 数据级并行 319
9.3.3 指令级并行 321
9.3.4 线程级并行 325
习题 329
附录A 32位通用指令列表 331
附录B MASM伪指令和操作符列表 336
教学建议
第1章 计算机系统概述 1
1.1 计算机的发展 1
1.1.1 计算机发展概况 1
1.1.2 微型计算机的发展 3
1.1.3 Intel 80×86系列处理器 5
1.2 冯·诺依曼计算机结构 6
1.2.1 二进制编码 7
1.2.2 存储程序和程序控制 8
1.2.3 顺序执行 9
1.2.4 组成部件 9
1.3 计算机系统的组成 10
1.3.1 计算机的硬件组成 10
1.3.2 计算机的总线结构 14
1.3.3 计算机系统的层次结构 19
1.3.4 计算机系统的软件组成 23
习题 28
第2章 数据表示 29
2.1 数制 29
2.1.1 二进制和十六进制 29
2.1.2 数制之间的转换 31
2.2 整数编码 33
2.2.1 定点整数格式 33
2.2.2 有符号整数编码 34
2.2.3 整数的类型转换 38
2.2.4 整数的加减运算及溢出 41
2.2.5 整数的移位运算 46
2.2.6 整数运算的数学性质 47
2.3 字符编码 48
2.3.1 ASCII 48
2.3.2 Unicode 53
2.4 实数编码 53
2.4.1 浮点数据格式 54
2.4.2 浮点运算的数学性质 61
习题 64
第3章 数字逻辑基础 68
3.1 逻辑代数 68
3.1.1 逻辑关系 68
3.1.2 逻辑代数运算规则 73
3.1.3 逻辑函数的形式、转换及化简 76
3.2 逻辑门电路 78
3.2.1 门电路的实现 78
3.2.2 集成电路 80
3.2.3 三态门 82
3.3 组合逻辑电路 83
3.3.1 编码器 84
3.3.2 译码器 85
3.3.3 加法器 87
3.3.4 多路开关 88
3.4 时序逻辑电路 88
3.4.1 触发器 89
3.4.2 寄存器 93
3.4.3 计数器 94
3.5 可编程逻辑器件 94
3.5.1 PLD概述 95
3.5.2 电子设计自动化 96
习题 99
第4章 处理器 101
4.1 处理器的组成 101
4.1.1 控制器 101
4.1.2 运算器 103
4.2 处理器的结构 103
4.2.1 处理器的基本结构 104
4.2.2 8086的功能结构 105
4.2.3 80386的功能结构 106
4.2.4 Pentium的功能结构 107
4.3 寄存器 109
4.3.1 通用寄存器 109
4.3.2 专用寄存器 111
4.4 存储器组织 113
4.4.1 存储模型 113
4.4.2 工作方式 114
4.4.3 逻辑地址 115
习题 119
第5章 指令系统 121
5.1 指令格式 121
5.1.1 指令编码 121
5.1.2 IA-32指令格式 124
5.2 汇编语言基础 126
5.2.1 汇编语言的语句格式 126
5.2.2 汇编语言的源程序框架 128
5.2.3 汇编语言的开发过程 132
5.2.4 DEVC中C语言的开发过程 137
5.3 汇编语言的常量和变量 141
5.3.1 常量表达 141
5.3.2 变量应用 143
5.4 数据寻址 150
5.4.1 立即数寻址 150
5.4.2 寄存器寻址 151
5.4.3 存储器寻址 151
5.4.4 数据寻址的组合 158
5.5 通用数据处理指令 159
5.5.1 数据传送类指令 160
5.5.2 算术运算类指令 164
5.5.3 位操作类指令 168
习题 172
第6章 汇编语言程序设计 177
6.1 顺序程序结构 177
6.2 分支程序结构 181
6.2.1 指令寻址 181
6.2.2 无条件转移指令 182
6.2.3 条件转移指令 184
6.2.4 单分支程序结构 190
6.2.5 双分支程序结构 191
6.2.6 多分支程序结构 192
6.3 循环程序结构 195
6.3.1 循环指令 195
6.3.2 计数控制循环 198
6.3.3 条件控制循环 199
6.3.4 多重循环 200
6.4 子程序 201
6.4.1 子程序指令 202
6.4.2 子程序设计 205
6.4.3 寄存器传递参数 208
6.4.4 共享变量传递参数 210
6.4.5 堆栈传递参数 212
6.4.6 堆栈帧 215
习题 223
第7章 存储系统 229
7.1 存储系统的层次结构 229
7.1.1 技术指标 230
7.1.2 层次结构 231
7.1.3 局部性原理 232
7.2 主存储器 235
7.2.1 读写存储器 236
7.2.2 ROM 241
7.2.3 半导体存储器的连接 245
7.3 高速缓冲存储器 249
7.3.1 高速缓存的工作原理 249
7.3.2 地址映射 252
7.3.3 替换算法 257
7.3.4 写入策略 258
7.4 存储管理 261
7.4.1 虚拟存储器 261
7.4.2 段式存储管理 262
7.4.3 页式存储管理 264
习题 267
第8章 输入/输出接口 269
8.1 I/O接口概述 269
8.1.1 I/O接口的典型结构 269
8.1.2 I/O端口的编址 271
8.1.3 I/O指令 273
8.2 外设数据的传送方式 274
8.2.1 无条件传送 275
8.2.2 程序查询传送 277
8.2.3 中断传送 279
8.2.4 中断控制系统 283
8.2.5 DMA传送 286
8.3 常用接口技术 289
8.3.1 定时控制接口 289
8.3.2 并行接口 297
8.3.3 异步串行通信接口 300
8.3.4 模拟接口 304
习题 305
第9章 处理器性能提高技术 308
9.1 精简指令集计算机技术 308
9.1.1 复杂指令集和精简指令集 308
9.1.2 MIPS处理器 311
9.2 指令流水线技术 313
9.2.1 指令流水线思想 313
9.2.2 80486的指令流水线 316
9.3 并行处理技术 318
9.3.1 并行性概念 318
9.3.2 数据级并行 319
9.3.3 指令级并行 321
9.3.4 线程级并行 325
习题 329
附录A 32位通用指令列表 331
附录B MASM伪指令和操作符列表 336
前 言
我国计算机科学与技术专业,尤其是计算机工程方向,往往开设多门有关计算机组成与结构的课程,一般包括“数字逻辑” “计算机组成原理” “汇编语言程序设计” “微机原理及接口技术”和“计算机系统结构”等。然而,计算机相关的其他专业并不要求全面深入的硬件技术知识,也没有足够的学时展开如此众多的教学内容。本书基于软件工程专业的课程教学实践,融合上述硬件技术相关课程的基本内容,从技术应用角度通过软件编程介绍计算机硬件组成和计算机工作原理。
在多门课程内容的融合过程和具体的教学实践中,需要努力解决好诸多教学问题,这也就形成了本书内容的特点。
1. 融合计算机组成原理和微机技术实例
传统上,计算机组成原理面向计算机学科,主要介绍计算机硬件的组成结构和工作原理。而微机原理主要针对电子、通信等机电类专业,从应用角度介绍通用微型计算机(简称为微机)的应用技术。本书采取通过实例理解原理的基本思路,即以计算机组成原理为主体,结合微机原理(IA-32处理器和PC)实例。这样,一方面利于学生掌握原理,避免重复学习;另一方面使学生熟悉广泛应用的通用微机系统,为应用奠定基础。
2. 以C和汇编语言实践贯穿逻辑主线
虽然本书以计算机工作原理和硬件技术为主体,但教学内容中使用C(或C++)高级语言、底层汇编语言编程作为实践环节。从第1章开始引入C语言编程环境(DEVC),第2章主要以C语言编程体会数据表示的原理,第5、6章融合C语言编译程序生成的汇编语言代码和MASM汇编语言程序,相互对照,终目的是使学生掌握汇编语言编程。这使得本书内容从高级语言到低级语言,再深入到计算机硬件,贯穿计算机层次结构;也使得学生能够自然地从软件编程过渡到计算机硬件原理,为进一步学习计算机组成、微机接口技术、嵌入式系统应用奠定基础。
3. 面向软件开发和系统应用取舍课程内容
融合多门课程,需要在内容上进行合理取舍,本书的主要原则是:面向软件开发和系统应用,不以设计处理器、硬件电路为目标,侧重工作原理、硬件电路的外特性。例如,简述运算原理、微程序和硬布线特点,舍弃运算器、微程序和硬布线控制器的设计实现;重点介绍基本指令,突出汇编语言程序结构;只依靠计数器体会接口技术,简介其他接口,引入指令流水线、指令级并行、数据级并行和线程级并行等系统结构先进技术。具体教学内容的选择则采取删繁就简的基本思路。例如,数据编码主要介绍定点整数格式、IEEE 754标准的浮点格式,不展开定点小数格式、非标准浮点格式相关内容。再如,对于存储器芯片,说明各种存储器芯片特点,而不是内部工作原理;阐明地址译码原理,而不是连接细节。
4. 补充数字逻辑基础知识
对于缺乏硬件电路知识的学生,本书补充了数字逻辑基础知识。这使得无须单独开设“数字逻辑”先修课程,数字逻辑只作为本书的一章。教学内容涉及基本概念和核心原理,具体包括:逻辑代数,门电路(含三态门),组合逻辑电路的编码器、译码器、加法器,时序逻辑电路的触发器、寄存器、计数器,PLD和电子设计自动化(EDA)。教学要求以理解为主,满足后续内容的需求即可。
5. 浅显易懂、图文并茂的写作风格
为了使得抽象的计算机工作原理易于理解,本书努力做到描述清晰准确、浅显易懂,尽量使用图表提供形象化的释义。重点内容常结合程序示例,让学生在上机实践中体会问题所在,激发学生探究的兴趣,然后再答疑解惑、详细讲解。每章之后编排有较多习题,分成两种类型:一类包括简答题、判断题和填空题,用于使学生掌握基本概念和要点,通过课堂提问与交互方式进行,便于了解学生自习情况;另一类包括问答、计算、编程等应用题,重点考察学生对计算机工作原理的理解和应用能力,在学生提交作业后进行课堂解答。部分题目有一定难度,适合学生深入研讨。
本书由钱晓捷编著,感谢程楠、石磊、关国利、张青、穆玲玲、姚俊婷等同事的帮助,感谢华章公司的支持。限于水平,书中难免存在不当之处,欢迎广大师生交流指正(作者的电子邮箱:[email protected])。
在多门课程内容的融合过程和具体的教学实践中,需要努力解决好诸多教学问题,这也就形成了本书内容的特点。
1. 融合计算机组成原理和微机技术实例
传统上,计算机组成原理面向计算机学科,主要介绍计算机硬件的组成结构和工作原理。而微机原理主要针对电子、通信等机电类专业,从应用角度介绍通用微型计算机(简称为微机)的应用技术。本书采取通过实例理解原理的基本思路,即以计算机组成原理为主体,结合微机原理(IA-32处理器和PC)实例。这样,一方面利于学生掌握原理,避免重复学习;另一方面使学生熟悉广泛应用的通用微机系统,为应用奠定基础。
2. 以C和汇编语言实践贯穿逻辑主线
虽然本书以计算机工作原理和硬件技术为主体,但教学内容中使用C(或C++)高级语言、底层汇编语言编程作为实践环节。从第1章开始引入C语言编程环境(DEVC),第2章主要以C语言编程体会数据表示的原理,第5、6章融合C语言编译程序生成的汇编语言代码和MASM汇编语言程序,相互对照,终目的是使学生掌握汇编语言编程。这使得本书内容从高级语言到低级语言,再深入到计算机硬件,贯穿计算机层次结构;也使得学生能够自然地从软件编程过渡到计算机硬件原理,为进一步学习计算机组成、微机接口技术、嵌入式系统应用奠定基础。
3. 面向软件开发和系统应用取舍课程内容
融合多门课程,需要在内容上进行合理取舍,本书的主要原则是:面向软件开发和系统应用,不以设计处理器、硬件电路为目标,侧重工作原理、硬件电路的外特性。例如,简述运算原理、微程序和硬布线特点,舍弃运算器、微程序和硬布线控制器的设计实现;重点介绍基本指令,突出汇编语言程序结构;只依靠计数器体会接口技术,简介其他接口,引入指令流水线、指令级并行、数据级并行和线程级并行等系统结构先进技术。具体教学内容的选择则采取删繁就简的基本思路。例如,数据编码主要介绍定点整数格式、IEEE 754标准的浮点格式,不展开定点小数格式、非标准浮点格式相关内容。再如,对于存储器芯片,说明各种存储器芯片特点,而不是内部工作原理;阐明地址译码原理,而不是连接细节。
4. 补充数字逻辑基础知识
对于缺乏硬件电路知识的学生,本书补充了数字逻辑基础知识。这使得无须单独开设“数字逻辑”先修课程,数字逻辑只作为本书的一章。教学内容涉及基本概念和核心原理,具体包括:逻辑代数,门电路(含三态门),组合逻辑电路的编码器、译码器、加法器,时序逻辑电路的触发器、寄存器、计数器,PLD和电子设计自动化(EDA)。教学要求以理解为主,满足后续内容的需求即可。
5. 浅显易懂、图文并茂的写作风格
为了使得抽象的计算机工作原理易于理解,本书努力做到描述清晰准确、浅显易懂,尽量使用图表提供形象化的释义。重点内容常结合程序示例,让学生在上机实践中体会问题所在,激发学生探究的兴趣,然后再答疑解惑、详细讲解。每章之后编排有较多习题,分成两种类型:一类包括简答题、判断题和填空题,用于使学生掌握基本概念和要点,通过课堂提问与交互方式进行,便于了解学生自习情况;另一类包括问答、计算、编程等应用题,重点考察学生对计算机工作原理的理解和应用能力,在学生提交作业后进行课堂解答。部分题目有一定难度,适合学生深入研讨。
本书由钱晓捷编著,感谢程楠、石磊、关国利、张青、穆玲玲、姚俊婷等同事的帮助,感谢华章公司的支持。限于水平,书中难免存在不当之处,欢迎广大师生交流指正(作者的电子邮箱:[email protected])。
编 者
2018年5月
评论
还没有评论。