顶部
收藏

计算系统基础

“十一五”国家规划教材

作者:
陈道蓄
定价:
36.00元
ISBN:
978-7-04-036760-7
版面字数:
530.000千字
开本:
16开
全书页数:
367页
装帧形式:
平装
重点项目:
“十一五”国家规划教材
出版时间:
2013-03-11
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
计算机导论

本书是国家精品课程“计算系统基础”的主讲教材。该课程作为软件工程专业的第一门专业课程,以一个经典计算机指令集MIPS的简化版本DLX为线索,选择C语言作为载体,采用程序设计与系统级认识双优先的方式,使初学者在对计算机系统有基本了解的基础上,更好地掌握结构化程序设计的基本思想和方法。

本书采用自顶向下和自底向上相结合的方式介绍计算系统,全书分为三部分,共17章,其中第一部分为第1章~第5章,主要介绍程序设计基础,使没有编程基础的学生获取对程序设计的感性认识;第二部分为第6章~第14章,主要介绍计算机硬件和系统软件的基础知识,并通过介绍一个简单的DLX计算机系统的工作原理,来帮助读者理解高级语言程序是如何在计算机系统中运行的;第三部分为第15章~第17章,主要介绍函数、指针、数组和递归等内容,以及一些复杂程序在DLX系统下的运行机制。

本书有与“计算系统基础”课程配套的DLX套件。该套件提供了C语言(部分非常用功能除外)编译和基本运行环境,能够满足本课程教学的需要。此外,DLX模拟器提供了较完整的模拟CPU,有兴趣的学生可以尝试在DLX模拟器上设计和实现基于DLX指令集的仿真操作系统DLX OS。

  • 第1章 引言
    • 1.1 本书的目标
    • 1.2 计算机与计算机系统
    • 1.3 计算系统
    • 1.4 本书的结构
    • 习题1
  • 第2章 C语言程序设计简介
    • 2.1 高级程序设计语言
    • 2.2 高级语言程序翻译技术
    • 2.3 C语言概述
    • 2.4 第一个例子:Hello World
    • 习题2
  • 第3章 类型和变量
    • 3.1 类型和变量
      • 3.1.1 3 种基本数据类型
      • 3.1.2 标识符
      • 3.1.3 作用域
    • 3.2 运算符
    • 3.3 附加主题
    • 3.4 问题求解:长度单位换算
    • 习题3
  • 第4章 结构化程序设计和控制结构
    • 4.1 结构化程序设计
    • 4.2 选择结构
      • 4.2.1 if语句
      • 4.2.2 if-else语句
    • 4.3 循环结构
      • 4.3.1 while语句
      • 4.3.2 for语句
      • 4.3.3 do-while语句
    • 4.4 其他控制结构
      • 4.4.1 switch语句
      • 4.4.2 break和continue语句
    • 4.5 问题求解
      • 4.5.1 问题1:计算自然对数之底e的近似值
      • 4.5.2 问题2:找出100 ~200之间的素数
      • 4.5.3 问题3:计算字符串“int”出现的次数
    • 习题4
  • 第5章 测试和调试
    • 5.1 软件开发过程
    • 5.2 错误类型
    • 5.3 测试
    • 5.4 调试
    • 5.5 正确编程
    • 习题5
  • 第6章 数据的机器级表示
    • 6.1 位和数据类型
    • 6.2 整数数据类型
    • 6.3 二进制补码整数
    • 6.4 二进制十进制转换
    • 6.5 算术运算
    • 6.6 逻辑运算
    • 6.7 其他表示法
      • 6.7.1 ASCII码
      • 6.7.2 浮点数类型
      • 6.7.3 十六进制表示法
    • 6.8 C语言中的数据类型
    • 习题6
  • 第7章 数字逻辑电路
    • 7.1 晶体管
    • 7.2 门电路
    • 7.3 组合逻辑电路
    • 7.4 基本存储元件
    • 7.5 存储器
    • 7.6 时序逻辑电路
      • 7.6.1 状态的概念
      • 7.6.2 有限状态机
      • 7.6.3 示例:交通灯控制器
    • 7.7 DLX子集的数据通路
    • 习题7
  • 第8章 冯·诺依曼模型
    • 8.1 基本组件
    • 8.2 DLX———冯·诺依曼模型示例
    • 8.3 指令处理
    • 8.4 DLX的有限状态机
    • 习题8
  • 第9章 指令集结构
    • 9.1 指令集结构概述
    • 9.2 算术/逻辑运算指令
      • 9.2.1 I-类型运算指令
      • 9.2.2 R-类型运算指令
    • 9.3 数据传送指令
      • 9.3.1 基址+偏移量模式
      • 9.3.2 示例
    • 9.4 控制指令
      • 9.4.1 条件分支
      • 9.4.2 示例:计算10个整数的和
      • 9.4.3 控制循环的两种方法
      • 9.4.4 示例:利用标志加一列数
      • 9.4.5 J指令
      • 9.4.6 TRAP指令
    • 9.5 DLX数据通路
    • 9.6 C语言的数据类型与计算机的ISA
    • 习题9
  • 第10章 机器语言程序设计
    • 10.1 解决问题
      • 10.1.1 实现3 种结构的DLX 控制指令
      • 10.1.2 示例:文档加密
    • 10.2 调试
      • 10.2.1 调试操作
      • 10.2.2 示例:调试器的使用
    • 习题10
  • 第11章 汇编语言
    • 11.1 汇编语言程序设计
    • 11.2 DLX 汇编语言
      • 11.2.1 指令
      • 11.2.2 伪操作
      • 11.2.3 示例:文档加密
    • 11.3 汇编过程
      • 11.3.1 一个“两趟”的过程
      • 11.3.2 第一趟:构建符号表
      • 11.3.3 第二趟:生成机器语言程序
    • 11.4 链接
      • 11.4.1 可执行映像
      • 11.4.2 链接器的主要工作
    • 11.5 编译:C-DLX
      • 11.5.1 一个简单的例子
      • 11.5.2 控制结构的例子
    • 11.6 栈———一种抽象数据类型
      • 11.6.1 两个实现栈的例子
      • 11.6.2 在存储器中实现栈
    • 11.7 为变量分配空间
      • 11.7.1 全局数据区和运行时栈
      • 11.7.2 C语言源水平调试器
    • 习题11
  • 第12章 输入和输出
    • 12.1 I/O基础
    • 12.2 键盘输入
    • 12.3 显示器输出
    • 12.4 内存映射I/O的数据通路
    • 12.5 DLX 键盘输入例程
    • 习题12
  • 第13章 自陷例程和中断
    • 13.1 DLX 自陷例程
      • 13.1.1 系统调用
      • 13.1.2 TRAP机制
      • 13.1.3 TRAP指令
      • 13.1.4 完整的机制
      • 13.1.5 IN/OUT服务例程
      • 13.1.6 HALT服务例程
      • 13.1.7 PUTS服务例程
      • 13.1.8 寄存器的保存和恢复
    • 13.2 中断驱动的I/O
      • 13.2.1 中断驱动的I/O概述
      • 13.2.2 中断信号的产生
      • 13.2.3 中断服务例程
    • 13.3 C 中的I/O
      • 13.3.1 I/O流
      • 13.3.2 putchar和getchar
      • 13.3.3 printf和scanf
    • 习题13
  • 第14章 子例程
    • 14.1 调用/返回机制
      • 14.1.1 JAL(R)指令
      • 14.1.2 改进IN服务例程
    • 14.2 示例:两个多位整数加法
    • 14.3 库例程
      • 14.3.1 示例:计算直角三角形斜边长
      • 14.3.2 C标准库
    • 14.4 子例程的测试与调试
    • 习题14
  • 第15章 函数
    • 15.1 函数
    • 15.2 C语言中的函数
      • 15.2.1 带参数的函数
      • 15.2.2 示例:计算直角三角形斜边长
    • 15.3 C函数在底层的实现
      • 15.3.1 运行时栈
      • 15.3.2 函数调用机制
      • 15.3.3 完整的调用实现
    • 15.4 问题求解
      • 15.4.1 问题1:小写转换为大写
      • 15.4.2 问题2:计算凸多边形的面积
    • 15.5 函数的测试与调试
    • 15.6 C中的库函数
    • 习题15
  • 第16章 指针和数组
    • 16.1 指针
      • 16.1.1 声明指针变量
      • 16.1.2 指针运算符
      • 16.1.3 使用指针传递引用
      • 16.1.4 问题求解:计算商和除数
      • 16.1.5 空指针
    • 16.2 数组
      • 16.2.1 数组的声明和使用
      • 16.2.2 问题求解
      • 16.2.3 数组与指针之间的关系
      • 16.2.4 数组作为参数
      • 16.2.5 字符串
      • 16.2.6 示例:冒泡排序
      • 16.2.7 数组的常见错误
      • 16.2.8 二维数组
    • 习题16
  • 第17章 递归
    • 17.1 递归简介
    • 17.2 问题求解
      • 17.2.1 问题1:汉诺塔
      • 17.2.2 问题2:二分法查找
    • 17.3 递归在底层的实现
      • 17.3.1 示例:斐波纳契数列
      • 17.3.2 递归调用机制
    • 习题17
  • 附录
    • 附录A 文件I/O
      • 附录A.1 ASCII文件
      • 附录A.2 二进制文件
    • 附录B 结构体
      • 附录B.1 结构体定义和变量声明
      • 附录B.2 结构体数组
    • 附录C 动态数据结构
      • 附录C.1 动态存储分配
      • 附录C.2 链表
    • 附录D DLX 模拟器
      • 附录D.1 DLX汇编语言编辑器
      • 附录D.2 DLX模拟器
      • 附录D.3 链接多个目标文件
    • 附录E 附录练习题
  • 索引
  • 参考文献

相关图书