展开全部

主编推荐语

帮助你理解计算机执行代码时背后发生的事情。

内容简介

了解计算机软硬件的工作原理可以为理解复杂代码打下坚实的基础,从而提升对代码的控制力。本书围绕如何将高级语言代码翻译成汇编语言、操作系统硬件资源管理、数据的编码、硬件的十进制数据处理、程序代码和机器代码等主题,解释了现代计算机的工作原理;从内存组织、二进制逻辑和数据类型等基本概念开始,逐步探讨它们在汇编语言层面的实现方式。

全书共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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。