计算机
类型
可以朗读
语音朗读
319千字
字数
2025-04-01
发行日期
展开全部
主编推荐语
帮助你理解计算机执行代码时背后发生的事情。
内容简介
了解计算机软硬件的工作原理可以为理解复杂代码打下坚实的基础,从而提升对代码的控制力。本书围绕如何将高级语言代码翻译成汇编语言、操作系统硬件资源管理、数据的编码、硬件的十进制数据处理、程序代码和机器代码等主题,解释了现代计算机的工作原理;从内存组织、二进制逻辑和数据类型等基本概念开始,逐步探讨它们在汇编语言层面的实现方式。
全书共21章,涵盖了数据存储、逻辑门和晶体管、中央处理器、汇编和机器代码、数据结构、面向对象编程等内容。
目录
- 版权信息
- 内容提要
- 前言
- 资源与支持
- 第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 小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。