内容简介
了解计算机软硬件的工作原理可以为理解复杂代码打下坚实的基础,从而提升对代码的控制力。本书围绕如何将高级语言代码翻译成汇编语言、操作系统硬件资源管理、数据的编码、硬件的十进制数据处理、程序代码和机器代码等主题,解释了现代计算机的工作原理;从内存组织、二进制逻辑和数据类型等基本概念开始,逐步探讨它们在汇编语言层面的实现方式。全书共21章,涵盖了数据存储、逻辑门和晶体管、中央处理器、汇编和机器代码、数据结构、面向对象编程等内容。
本书适合作为高等院校计算机组成原理相关课程的参考教材,也适合有编程基础的人阅读。
目录
第 1章 预备知识 1
1.1 计算机子系统 1
1.2 程序执行 2
1.3 编程环境 3
1.4 小结 5
第 2章 数据存储格式 6
2.1 描述开关和开关组 6
2.1.1 使用位表示开关 6
2.1.2 表示位组 7
2.1.3 使用十六进制数码 8
2.2 二进制和十进制的数学等价性 9
2.2.1 了解位置记数法 9
2.2.2 将二进制数转换为无符号十进制数 10
2.2.3 将无符号十进制数转换为二进制数 11
2.3 在存储器中存储数据 13
2.3.1 内存地址的表示方式 14
2.3.2 字符 15
2.3.3 无符号整数 17
2.4 使用C语言探究数据格式 18
2.4.1 C和C++ I/O库 19
2.4.2 编写并执行第 一个C程序 20
2.5 使用调试器检查内存 22
2.5.1 使用调试器 23
2.5.2 理解内存字节存储序 26
2.6 小结 28
第3章 计算机算术 29
3.1 无符号整数的加减 29
3.1.1 十进制数字系统的加法 29
3.1.2 十进制数字系统的减法 30
3.1.3 无符号二进制整数的加法和减法 32
3.2 有符号整数的加减 33
3.2.1 补码 34
3.2.2 计算补码 35
3.2.3 二进制有符号整数的加减 37
3.2.4 整数编码的环性质 39
3.3 小结 41
第4章 布尔代数 42
4.1 基本布尔运算符 42
4.2 布尔表达式 44
4.3 布尔代数法则 44
4.3.1 与初等代数相同的布尔代数法则 45
4.3.2 与初等代数不同的布尔代数法则 46
4.4 布尔函数 48
4.4.1 规范和或最小项之和 49
4.4.2 规范积或最大项之积 50
4.4.3 规范布尔形式的比较 51
4.5 布尔表达式最小化 51
4.5.1 最小表达式 52
4.5.2 使用代数操作实现最小化 53
4.5.3 使用卡诺图进行最小化 55
4.6 组合基本布尔运算符 61
4.7 小结 62
第5章 逻辑门 63
5.1 电子学入门 63
5.1.1 电源和电池 64
5.1.2 无源元件 64
5.2 晶体管 70
5.2.1 MOSFET开关 70
5.2.2 CMOS开关 72
5.3 与非门和或非门 74
5.4 作为万能门的与非门 75
5.5 小结 76
第6章 组合逻辑电路 77
6.1 两类逻辑电路 77
6.2 加法器 78
6.2.1 半加器 78
6.2.2 全加器 78
6.2.3 由两个半加器组成的全加器 79
6.2.4 波动进位加法和减法电路 80
6.3 译码器 82
6.4 复用器 85
6.5 可编程逻辑设备 87
6.5.1 可编程逻辑阵列 87
6.5.2 只读存储器 89
6.5.3 可编程阵列逻辑 90
6.6 小结 91
第7章 时序逻辑电路 92
7.1 锁存器 92
7.1.1 使用或非门的SR锁存器 93
7.1.2 使用与非门的SR锁存器 94
7.1.3 带有Enable的SR锁存器 96
7.1.4 D锁存器 97
7.2 触发器 98
7.2.1 时钟 98
7.2.2 D触发器 99
7.2.3 T触发器 100
7.2.4 JK触发器 101
7.3 设计时序逻辑电路 103
7.3.1 设计计数器 104
7.3.2 设计分支预测器 107
7.4 小结 110
第8章 存储器 112
8.1 存储器层级结构 112
8.1.1 大容量存储器 113
8.1.2 内存 113
8.1.3 缓存 114
8.1.4 寄存器 115
8.2 实现存储器硬件 115
8.2.1 4位寄存器 115
8.2.2 移位寄存器 117
8.2.3 寄存器文件 118
8.2.4 读-写存储器 119
8.2.5 静态随机存取存储器 120
8.2.6 动态随机存取存储器 121
8.3 小结 122
第9章 中央处理单元 123
9.1 CPU概述 123
9.1.1 CPU子系统 123
9.1.2 指令执行周期 125
9.2 x86-64寄存器 126
9.2.1 通用寄存器 127
9.2.2 状态寄存器 129
9.3 C/C++的整数数据类型和寄存器大小 129
9.4 使用gdb查看CPU寄存器 130
9.5 小结 135
第 10章 汇编语言编程 137
10.1 编译C程序 137
10.2 从C到汇编语言 138
10.2.1 我们不会用到的汇编器指令 140
10.2.2 我们会用到的编译器指令 142
10.3 使用汇编语言创建程序 143
10.3.1 汇编语言概述 144
10.3.2 第 一条汇编语言指令 145
10.3.3 函数内的最小化处理 147
10.3.4 使用gdb学习汇编语言 148
10.4 AT&T语法 154
10.5 小结 155
第 11章 深入main函数 156
11.1 write和read系统调用函数 156
11.2 通过寄存器传递参数 157
11.3