【实用性强】着眼于硬件组件和机器指令,帮助读者理解计算机执行代码时背后发生的事情,让读者成为更优秀、更有信心的程序员。 【案例丰富】经过多年课堂实践的检验,覆盖数据存储方式、操作系统管理硬件资源、布尔代数应用等多方面内容。 【知识全面】全书共21章,涵盖数据存储、逻辑门和晶体管、中央处理器、汇编和机器代码、数据结构、面向对象编程等内容。
售 价:¥
纸质售价:¥92.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
内容提要
前言
资源与支持
第1章 预备知识
1.1 计算机子系统
1.2 程序执行
1.3 编程环境
1.4 小结
第2章 数据存储格式
2.1 描述开关和开关组
2.1.1 使用位表示开关
2.1.2 表示位组
2.1.3 使用十六进制数码
2.2 二进制和十进制的数学等价性
2.2.1 了解位置记数法
2.2.2 将二进制数转换为无符号十进制数
2.2.3 将无符号十进制数转换为二进制数
2.3 在存储器中存储数据
2.3.1 内存地址的表示方式
2.3.2 字符
2.3.3 无符号整数
2.4 使用C语言探究数据格式
2.4.1 C和C++ I/O库
2.4.2 编写并执行第一个C程序
2.5 使用调试器检查内存
2.5.1 使用调试器
2.5.2 理解内存字节存储序
2.6 小结
第3章 计算机算术
3.1 无符号整数的加减
3.1.1 十进制数字系统的加法
3.1.2 十进制数字系统的减法
3.1.3 无符号二进制整数的加法和减法
3.2 有符号整数的加减
3.2.1 补码
3.2.2 计算补码
3.2.3 二进制有符号整数的加减
3.2.4 整数编码的环性质
3.3 小结
第4章 布尔代数
4.1 基本布尔运算符
4.2 布尔表达式
4.3 布尔代数法则
4.3.1 与初等代数相同的布尔代数法则
4.3.2 与初等代数不同的布尔代数法则
4.4 布尔函数
4.4.1 规范和或最小项之和
4.4.2 规范积或最大项之积
4.4.3 规范布尔形式的比较
4.5 布尔表达式最小化
4.5.1 最小表达式
4.5.2 使用代数操作实现最小化
4.5.3 使用卡诺图进行最小化
4.6 组合基本布尔运算符
4.7 小结
第5章 逻辑门
5.1 电子学入门
5.1.1 电源和电池
5.1.2 无源元件
5.2 晶体管
5.2.1 MOSFET开关
5.2.2 CMOS开关
5.3 与非门和或非门
5.4 作为万能门的与非门
5.5 小结
第6章 组合逻辑电路
6.1 两类逻辑电路
6.2 加法器
6.2.1 半加器
6.2.2 全加器
6.2.3 由两个半加器组成的全加器
6.2.4 波动进位加法和减法电路
6.3 译码器
6.4 复用器
6.5 可编程逻辑设备
6.5.1 可编程逻辑阵列
6.5.2 只读存储器
6.5.3 可编程阵列逻辑
6.6 小结
第7章 时序逻辑电路
7.1 锁存器
7.1.1 使用或非门的SR锁存器
7.1.2 使用与非门的SR锁存器
7.1.3 带有Enable的SR锁存器
7.1.4 D锁存器
7.2 触发器
7.2.1 时钟
7.2.2 D触发器
7.2.3 T触发器
7.2.4 JK触发器
7.3 设计时序逻辑电路
7.3.1 设计计数器
7.3.2 设计分支预测器
7.4 小结
第8章 存储器
8.1 存储器层级结构
8.1.1 大容量存储器
8.1.2 内存
8.1.3 缓存
8.1.4 寄存器
8.2 实现存储器硬件
8.2.1 4位寄存器
8.2.2 移位寄存器
8.2.3 寄存器文件
8.2.4 读-写存储器
8.2.5 静态随机存取存储器
8.2.6 动态随机存取存储器
8.3 小结
第9章 中央处理单元
9.1 CPU概述
9.1.1 CPU子系统
9.1.2 指令执行周期
9.2 x86-64寄存器
9.2.1 通用寄存器
9.2.2 状态寄存器
9.3 C/C++的整数数据类型和寄存器大小
9.4 使用gdb查看CPU寄存器
9.5 小结
第10章 汇编语言编程
10.1 编译C程序
10.2 从C到汇编语言
10.2.1 我们不会用到的汇编器指令
10.2.2 我们会用到的编译器指令
10.3 使用汇编语言创建程序
10.3.1 汇编语言概述
10.3.2 第一条汇编语言指令
10.3.3 函数内的最小化处理
10.3.4 使用gdb学习汇编语言
10.4 AT&T语法
10.5 小结
第11章 深入main函数
11.1 write和read系统调用函数
11.2 通过寄存器传递参数
11.3 位置无关代码
11.4 调用栈
11.4.1 栈的概述
11.4.2 深入函数序言和结语
11.5 函数的局部变量
11.5.1 栈内变量
11.5.2 栈损坏
11.6 不使用C运行时环境
11.7 小结
第12章 剖析指令
12.1 机器码
12.2 指令字节
12.2.1 操作码字节
12.2.2 ModR/M字节
12.2.3 REX前缀字节
12.3 立即寻址模式
12.4 内存寻址模式
12.4.1 直接内存寻址
12.4.2 带有偏移量的寄存器间接寻址
12.4.3 带有索引的寄存器间接寻址
12.4.4 SIB字节
12.5 跳转指令
12.6 汇编器和链接器
12.6.1 汇编器
12.6.2 链接器
12.7 小结
第13章 控制流结构
13.1 跳转
13.1.1 无条件跳转
13.1.2 条件跳转
13.2 迭代
13.2.1 while循环
13.2.2 for循环
13.2.3 do-while循环
13.3 选择
13.3.1 if条件
13.3.2 if-then-else条件
13.3.3 switch条件
13.4 小结
第14章 剖析函数
14.1 C语言的变量名作用域
14.2 参数传递概述
14.3 全局变量
14.4 显式传递参数
14.4.1 C语言中的参数传递
14.4.2 汇编语言实现
14.5 处理6个以上的参数
14.5.1 将参数压入栈
14.5.2 直接在栈内存储参数
14.5.3 栈帧用法总结
14.6 静态局部变量
14.7 小结
第15章 函数的特殊用法
15.1 递归
15.2 使用汇编语言访问CPU特性
15.2.1 使用汇编语言编写的独立函数
15.2.2 内联汇编语言
15.3 小结
第16章 逻辑位、乘法以及除法指令
16.1 位掩码
16.1.1 C语言中的位掩码
16.1.2 逻辑指令
16.1.3 汇编语言中的位掩码
16.2 移位
16.2.1 C语言中的移位操作
16.2.2 移位指令
16.2.3 汇编语言中的移位操作
16.3 乘法
16.3.1 C语言中的乘法
16.3.2 乘法指令
16.3.3 汇编语言中的乘法
16.4 除法
16.4.1 C语言中的除法
16.4.2 除法指令
16.4.3 汇编语言中的除法
16.5 小结
第17章 数据结构
17.1 数组
17.1.1 C语言中的数组
17.1.2 汇编语言中的数组
17.2 记录
17.2.1 C语言中的记录
17.2.2 汇编语言中的记录
17.2.3 在C语言中向其他函数传递记录
17.2.4 在汇编语言中向其他函数传递记录
17.3 小结
第18章 面向对象编程
18.1 C++中的对象
18.1.1 使用C++对象
18.1.2 定义类成员函数
18.1.3 由编译器生成构造函数和析构函数
18.2 汇编语言中的对象
18.3 小结
第19章 小数
19.1 二进制小数
19.2 定点数
19.2.1 当小数部分为2的倒数幂之和时
19.2.2 当小数部分为十进制时
19.3 浮点数
19.3.1 浮点表示
19.3.2 IEEE 754浮点数标准
19.3.3 SSE2浮点数硬件
19.3.4 xmm寄存器
19.3.5 浮点数编程
19.3.6 浮点算术误差
19.4 关于数值精确性的一些说明
19.5 小结
第20章 输入/输出
20.1 时序考量
20.1.1 内存时序
20.1.2 I/O设备时序
20.1.3 总线时序
20.2 访问I/O设备
20.2.1 端口映射I/O
20.2.2 内存映射I/O
20.3 I/O编程
20.3.1 轮询式I/O
20.3.2 中断驱动I/O
20.3.3 直接内存访问
20.4 轮询式I/O编程算法
20.4.1 使用C语言实现UART内存映射I/O
20.4.2 使用汇编语言实现UART内存映射I/O
20.4.3 UART端口映射I/O
20.5 小结
第21章 中断与异常
21.1 特权级
21.2 CPU响应中断或异常
21.2.1 外部中断
21.2.2 异常
21.2.3 软件中断
21.3 系统调用
21.3.1 int 0x80软件中断
21.3.2 syscall指令
21.4 小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜