展开全部

主编推荐语

“计算机组成原理”图解趣味版,蹲马桶就能看懂的编程基础知识。

内容简介

《程序是怎样跑起来的》一书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时专设了“如果是你,你会怎样介绍?”专栏,以小学生、老奶奶为对象讲解程序的运行原理,颇为有趣。本书图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读。

目录

  • 版权信息
  • 版权声明
  • 前言
  • 程序是怎样跑起来的——本书中涉及的主要关键词
  • 本书的结构
  • 第1章 对程序员来说CPU是什么
  • 1.1 CPU的内部结构解析
  • 1.2 CPU是寄存器的集合体
  • 1.3 决定程序流程的程序计数器
  • 1.4 条件分支和循环机制
  • 1.5 函数的调用机制
  • 1.6 通过地址和索引实现数组
  • 1.7 CPU的处理其实很简单
  • 第2章 数据是用二进制数表示的
  • 2.1 用二进制数表示计算机信息的原因
  • 2.2 什么是二进制数
  • 2.3 移位运算和乘除运算的关系
  • 2.4 便于计算机处理的“补数”
  • 2.5 逻辑右移和算术右移的区别
  • 2.6 掌握逻辑运算的窍门
  • COLUMN 如果是你,你会怎样介绍?
  • 第3章 计算机进行小数运算时出错的原因
  • 3.1 将0.1累加100次也得不到10
  • 3.2 用二进制数表示小数
  • 3.3 计算机运算出错的原因
  • 3.4 什么是浮点数
  • 3.5 正则表达式和EXCESS系统
  • 3.6 在实际的程序中进行确认
  • 3.7 如何避免计算机计算出错
  • 3.8 二进制数和十六进制数
  • 第4章 熟练使用有棱有角的内存
  • 4.1 内存的物理机制很简单
  • 4.2 内存的逻辑模型是楼房
  • 4.3 简单的指针
  • 4.4 数组是高效使用内存的基础
  • 4.5 栈、队列以及环形缓冲区
  • 4.6 链表使元素的追加和删除更容易
  • 4.7 二叉查找树使数据搜索更有效
  • 第5章 内存和磁盘的亲密关系
  • 5.1 不读入内存就无法运行
  • 5.2 磁盘缓存加快了磁盘访问速度
  • 5.3 虚拟内存把磁盘作为部分内存来使用
  • 5.4 节约内存的编程方法
  • 5.5 磁盘的物理结构
  • 第6章 亲自尝试压缩数据
  • 6.1 文件以字节为单位保存
  • 6.2 RLE算法的机制
  • 6.3 RLE算法的缺点
  • 6.4 通过莫尔斯编码来看哈夫曼算法的基础
  • 6.5 用二叉树实现哈夫曼编码
  • 6.6 哈夫曼算法能够大幅提升压缩比率
  • 6.7 可逆压缩和非可逆压缩
  • COLUMN 如果是你,你会怎样介绍?
  • 第7章 程序是在何种环境中运行的
  • 7.1 运行环境=操作系统+硬件
  • 7.2 Windows克服了CPU以外的硬件差异
  • 7.3 不同操作系统的API不同
  • 7.4 FreeBSD Port帮你轻松使用源代码
  • 7.5 利用虚拟机获得其他操作系统环境
  • 7.6 提供相同运行环境的Java虚拟机
  • 7.7 BIOS和引导
  • 第8章 从源文件到可执行文件
  • 8.1 计算机只能运行本地代码
  • 8.2 本地代码的内容
  • 8.3 编译器负责转换源代码
  • 8.4 仅靠编译是无法得到可执行文件的
  • 8.5 启动及库文件
  • 8.6 DLL文件及导入库
  • 8.7 可执行文件运行时的必要条件
  • 8.8 程序加载时会生成栈和堆
  • 8.9 有点难度的Q&A
  • 第9章 操作系统和应用的关系
  • 9.1 操作系统功能的历史
  • 9.2 要意识到操作系统的存在
  • 9.3 系统调用和高级编程语言的移植性
  • 9.4 操作系统和高级编程语言使硬件抽象化
  • 9.5 Windows操作系统的特征
  • COLUMN 如果是你,你会怎样介绍?
  • 第10章 通过汇编语言了解程序的实际构成
  • 10.1 汇编语言和本地代码是一一对应的
  • 10.2 通过编译器输出汇编语言的源代码
  • 10.3 不会转换成本地代码的伪指令
  • 10.4 汇编语言的语法是“操作码+操作数”
  • 10.5 最常用的mov指令
  • 10.6 对栈进行push和pop
  • 10.7 函数调用机制
  • 10.8 函数内部的处理
  • 10.9 始终确保全局变量用的内存空间
  • 10.10 临时确保局部变量用的内存空间
  • 10.11 循环处理的实现方法
  • 10.12 条件分支的实现方法
  • 10.13 了解程序运行方式的必要性
  • 第11章 硬件控制方法
  • 11.1 应用和硬件无关?
  • 11.2 支撑硬件输入输出的IN指令和OUT指令
  • 11.3 编写测试用的输入输出程序
  • 11.4 外围设备的中断请求
  • 11.5 用中断来实现实时处理
  • 11.6 DMA可以实现短时间内传送大量数据
  • 11.7 文字及图片的显示机制
  • COLUMN 如果是你,你会怎样介绍?
  • 第12章 让计算机“思考”
  • 12.1 作为“工具”的程序和为了“思考”的程序
  • 12.2 用程序来表示人类的思考方式
  • 12.3 用程序来表示人类的思考习惯
  • 12.4 程序生成随机数的方法
  • 12.5 活用记忆功能以达到更接近人类的判断
  • 12.6 用程序来表示人类的思考方式
  • COLUMN 如果是你,你会怎样介绍?
  • 附录 让我们开始C语言之旅
  • C语言的特点
  • 变量和函数
  • 数据类型
  • 标准函数库
  • 函数调用
  • 局部变量和全局变量
  • 数组和循环
  • 其他语法结构
  • 结语
  • 致谢
  • 看完了
展开全部

评分及书评

4.8
5个评分
  • 用户头像
    给这本书评了
    5.0
    有意思

    终于看完了,信心增加了不少。

      转发
      评论

    出版方

    人民邮电出版社·图灵出品

    图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。