华信教育资源网
计算机系统基础——基于IA-32体系结构
作   译   者:崔丽群 出 版 日 期:2020-09-01
出   版   社:电子工业出版社 维   护   人:孟宇 
书   代   号:G0391420 I S B N:9787121391422

图书简介:

本书以高级语言程序的开发和运行过程为主线,采用循序渐进、深入浅出的方法,介绍与计算机系统相关的核心概念,将程序执行每个环节所涉及的硬件和软件关联起来,帮助读者建立一个完整的计算机系统层次结构框架。 本书采用IA-32体系结构的计算机系统,通过反汇编工具,将高级语言、汇编语言、机器代码及其执行进行关联,实现对程序的跟踪和调试。本书共分7章,主要内容包括计算机系统概述、数据的机器级表示与处理、层次结构存储系统、指令系统和程序的机器级表示、CPU结构和程序执行、异常和中断及输入/输出系统。 本书概念清楚、通俗易懂、实例丰富,与当代计算机技术相结合,可作为高等院校的“计算机硬件技术”“计算机组成原理”等课程的教材和参考书,也可以作为计算机及相关专业的计算机系统方面的基础教材或计算机技术人员的参考书。
定价 49.0
您的专属联系人更多
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书以高级语言程序的开发和运行过程为主线,采用循序渐进、深入浅出的方法,介绍与计算机系统相关的核心概念,将程序执行每个环节所涉及的硬件和软件关联起来,帮助读者建立一个完整的计算机系统层次结构框架。 本书采用IA-32体系结构的计算机系统,通过反汇编工具,将高级语言、汇编语言、机器代码及其执行进行关联,实现对程序的跟踪和调试。本书共分7章,主要内容包括计算机系统概述、数据的机器级表示与处理、层次结构存储系统、指令系统和程序的机器级表示、CPU结构和程序执行、异常和中断及输入/输出系统。 本书概念清楚、通俗易懂、实例丰富,与当代计算机技术相结合,可作为高等院校的“计算机硬件技术”“计算机组成原理”等课程的教材和参考书,也可以作为计算机及相关专业的计算机系统方面的基础教材或计算机技术人员的参考书。

    图书详情

    ISBN:9787121391422
    开 本:16开
    页 数:236
    字 数:370.0

    本书目录

    第1章  计算机系统概述	1
    1.1  计算机的发展历程	1
    1.2  计算机系统的基本组成	4
    1.2.1  冯·诺依曼计算机的基本结构	4
    1.2.2  现代计算机的基本组成	5
    1.2.3  计算机的工作过程	7
    1.3  计算机系统的层次结构	9
    1.4  计算机系统的性能评价指标	11
    1.5  本章小结	14
    习题1	15
    第2章  数据的机器级表示与处理	16
    2.1  数制和编码	16
    2.1.1  进位计数制	16
    2.1.2  计算机中的编码	19
    2.1.3  无符号数和有符号数	21
    2.1.4  定点数与浮点数	22
    2.2  定点数的表示	23
    2.2.1  定点数的编码表示	23
    2.2.2  C语言中的整数	28
    2.3  浮点数的表示	28
    2.3.1  浮点数的基本概念	28
    2.3.2  IEEE 754标准	30
    2.3.3  C语言中的浮点数	31
    2.4  数据的存储	32
    2.5  定点数的基本运算	35
    2.5.1  定点数加/减法运算	35
    2.5.2  定点数乘/除法运算	37
     ?*2.6  浮点数的基本运算	42
    2.6.1  浮点数加/减法运算	42
    2.6.2  浮点数乘/除法运算	46
    2.7  本章小结	47
    习题2	47
    第3章  层次结构存储系统	49
    3.1  存储器技术	49
    3.1.1  存储器概述	49
    3.1.2  存储器的层次结构	50
    3.1.3  存储器技术	53
    3.2  主存储器	54
    3.2.1  主存储器的结构和基本操作	54
    3.2.2  主存储器的组成与控制	57
    3.2.3  主存储器的读/写操作	63
    3.3  高速缓冲存储器(Cache)	64
    3.3.1  程序访问的局部性	64
    3.3.2  Cache的基本工作原理	66
    3.3.3  Cache地址映射	69
    3.3.4  Cache替换算法	76
    3.3.5  Cache设计考虑因素	77
    3.4  虚拟存储管理	79
    3.4.1  虚拟存储器	79
    3.4.2  存储管理	80
    3.5  IA-32系统地址转换	84
    3.5.1  逻辑地址向线性地址的转换	84
    3.5.2  线性地址向物理地址的转换	87
    3.6  本章小结	90
    习题3	90
    第4章  指令系统和程序的机器级表示	93
    4.1  机器指令	93
    4.1.1  机器指令与汇编指令的关系	93
    4.1.2  指令的一般格式	93
    4.2  寄存器组织	94
    4.2.1  通用寄存器	95
    4.2.2  专用寄存器	95
    4.2.3  段寄存器	97
      ?*4.2.4  浮点寄存器栈和多媒体扩展寄存器组	97
    4.3  存储器组织	98
    4.3.1  存储模型	99
    4.3.2  工作方式	99
    4.3.3  逻辑地址	100
    4.4  数据类型及格式	103
    4.5  IA-32数据寻址方式	104
    4.5.1  立即数寻址	105
    4.5.2  寄存器寻址	105
    4.5.3  存储器寻址	106
    4.6  IA-32指令系统	109
    4.6.1  指令格式	109
    4.6.2  数据传送指令	110
    4.6.3  算术运算指令	114
    4.6.4  位操作指令	119
    4.6.5  控制转移指令	121
    4.7  程序的机器级表示	125
    4.7.1  过程调用的机器级表示	125
      ?*4.7.2  选择结构的机器级表示	130
      ?*4.7.3  循环结构的机器级表示	133
    4.8  本章小结	135
    习题4	136
    第5章  CPU结构和程序执行	139
    5.1  程序执行概述	139
    5.1.1  指令的执行过程	139
    5.1.2  指令周期	141
    5.2  CPU结构和工作原理	143
    5.2.1  CPU的功能	143
    5.2.2  CPU的主要寄存器	143
    5.2.3  CPU的结构和工作原理	144
    5.3  数据通路	146
    5.3.1  数据通路的基本结构	146
    5.3.2  单总线数据通路	148
    5.3.3  多总线数据通路	149
    5.4  指令流水线	151
    5.4.1  指令流水线的基本原理	151
    5.4.2  CISC指令集和RISC指令集	154
    5.4.3  流水线冒险及其解决方法	156
      ?*5.4.4  流水线多发技术	160
    5.5  本章小结	162
    习题5	162
    第6章  异常和中断	165
    6.1  异常和中断概述	165
    6.1.1  异常和中断的基本概念	165
    6.1.2  异常和中断的分类	166
    6.1.3  异常和中断的作用	169
    6.2  异常和中断的响应	170
    6.3  IA-32的CPU中断管理	173
    6.3.1  中断向量表	173
    6.3.2  IA-32的中断描述符表	175
     ?*6.4  8259A中断控制器	178
    6.4.1  8259A的功能	178
    6.4.2  8259A的内部结构	178
    6.4.3  中断源识别与中断优先级	180
    6.4.4  8259A的工作方式	183
    6.4.5  8259A的工作过程	186
    6.5  中断程序设计及响应过程举例	187
    6.5.1  中断程序设计	187
    6.5.2  中断响应过程举例	189
    6.6  本章小结	190
    习题6	191
    第7章  输入/输出系统	192
    7.1  输入/输出系统概述	192
    7.2  输入/输出硬件系统	193
    7.2.1  输入/输出接口功能	193
    7.2.2  输入/输出接口结构	195
    7.2.3  输入/输出设备的总线连接	197
    7.2.4  输入/输出接口的寻址方式	198
    7.3  输入/输出软件系统	201
    7.3.1  输入/输出软件系统任务与工作过程	202
    7.3.2  内核空间输入/输出软件	203
    7.3.3  用户空间输入/输出软件	206
    7.4  CPU与外设的数据交换方式	210
    7.4.1  程序查询方式	211
    7.4.2  程序中断方式	212
    7.4.3  DMA方式	214
    7.5  本章小结	220
    习题7	221
    附录A  OllDbg反汇编工具	222
    主要参考文献	225
    展开

    前     言

    为了满足计算机产业迅猛发展对专业人才的迫切需求,根据高等教育向应用型转型的要求,在充分调研计算机及相关专业的培养方案和课程体系,并重新规划教学课程体系和教学内容的基础上编写了本书,本书旨在培养学生的“系统思维”能力,使学生能从系统层面进行思考,深刻理解计算机系统的整体概念,并且具备软/硬件协同设计和程序优化设计等能力。
    目前,国内计算机硬件课程设置大多按计算机系统横向划分,可分为“数字逻辑”“计算机组成原理”“汇编语言程序设计”“微机原理与接口技术”等课程,总体课程学时较长。学生对整个计算机系统的认识过程就像“盲人摸象”,难以对计算机系统形成全面的认识。
    本书内容整合“计算机组成原理”“微机原理与接口技术”“汇编语言程序设计”等课程的教学内容,以高级语言程序的开发和运行过程为主线,将该过程中每个环节所涉及的硬件和软件的基本概念关联起来,试图使读者建立一个完整的计算机系统层次结构、了解计算机系统的全貌和相关知识体系、初步理解计算机系统中的每个抽象层及其相互转换关系,以及对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解,从而提高读者在程序调试、性能优化、移植和健壮性保证等方面的能力,并为后续的课程打下坚实基础。
    本书采用IA-32体系结构,从程序设计人员视角出发,分析高级语言执行中所需的数据和程序(介绍IA-32指令系统,但是在程序应用方面采用C语言编程,将高级语言程序、汇编语言程序、机器代码及其执行连接起来);在数据存储方面,分析如何构建层次化存储系统并改善应用程序性能;基于程序执行中出现的异常和中断,介绍如何实现控制和完成中断程序设计等内容;在完成输入/输出操作方面,介绍如何构建输入/输出硬件系统和利用输入/输出软件系统。
    本书共7章,各章节内容如下。
      第1章  计算机系统概述 
    介绍计算机系统的基本组成、计算机系统的层次结构和性能评价指标,通过一条汇编指令了解计算机的工作过程。
      第2章  数据的机器级表示与处理
    介绍程序中处理的数据在机器中的表示与处理,包括计算机中的数据编码、定点数和浮点数,采用IEEE 754标准完成浮点数的加/减运算,分析了C语言采用的整数和浮点数的数据类型,以及类型强制转换后数据的变化。
      第3章  层次结构存储系统
    介绍存储系统构建和存储的访问过程,引入当前计算机系统中存储系统的层次结构和存储器技术、CPU和主存储器的连接方式、高速缓冲存储器的工作原理和地址映射、虚拟存储管理方式、IA-32系统地址转换,分析了通过如何改善程序的时间局部性和空间局部性来提高应用程序的性能。
      第4章  指令系统和程序的机器级表示
    介绍IA-32数据寻址方式和指令系统,在程序设计中采用高级语言编程,从过程调用的机器级表示作为切入点,利用反汇编工具,将高级语言、汇编语言和机器代码相关联,进而扩展到选择结构和循环结构的程序的机器级表示。
      第5章  CPU结构和程序执行
    介绍可执行目标代码中的指令序列在机器上的执行过程;利用单总线数据通路和多总线数据通路分析不同指令的执行过程;分析指令流水线中的冒险及其解决办法,并介绍超标量、超流水线和超长指令字的技术。
      第6章  异常和中断
    介绍打断程序正常执行的机制和中断控制原理;IA-32体系结构中的CPU中断管理方式,通过8259A中断控制器的应用实例,全面了解中断的控制和实现过程;还引入中断的程序设计及响应过程实例。
      第7章  输入/输出系统
    介绍输入/输出硬件系统和输入/输出软件系统、CPU与外设的数据交换方式。其中,输入/输出软件系统包括内核空间输入/输出软件和用户空间输入/输出软件,本章基于C语言标准库函数scanf和printf实例,并通过反汇编工具进行了汇编语言功能分析。
    本书所用平台为IA-32+Windows+C语言+OllDbg,书中所用的C语言程序在Windows平台上编译后,利用OllDbg反汇编工具进行指令动态跟踪。本书在介绍程序的机器级表示前,先介绍存储系统和IA-32指令集体系结构(包括机器语言和汇编语言),读者不需要具备任何机器语言和汇编语言的基础知识,就可以理解CPU、存储器和程序的运行关系。
    通过本书的学习,有助于读者利用计算机系统相关知识编写更有效的程序。对于某些偏向软件方面专业的学生,也不需要深入了解计算机底层硬件细节,只需要对高级语言和底层结构之间的互动机制有所了解,这样有助于学生理解解决问题的算法及更复杂的数据结构问题,还有助于学生联想硬件和上层语言之间的交互场景,从而理解底层设计的重点和动机。
    本书各个章节间具有非常紧密的联系,因此建议采用“整体性”学习方法,通过第1章的学习先建立一个粗略的计算机系统整体框架,然后不断地通过后续章节的学习,将新的内容与前面内容关联起来,以逐步细化计算机系统框架内容,最终形成比较完整的、密切关联的计算机系统整体概念。
    本书由刘丽编写第1、2章,于美娜编写第4章,姜彦吉编写第6、7章,崔丽群编写第3、5章并负责全书通稿。 
    本书参考了国内外的经典教材,在内容上力求做到反映技术发展现状;在内容组织上力求将基本概念及基本方法阐述清楚,尽量采用图示和实例进行解释和说明,使本书内容简明扼要,通俗易懂且重点突出。
    由于计算机系统的不断发展和计算机技术的不断进步,加之作者水平有限,在编写中错误和不妥之处在所难免,恳请读者批评指正。
    
    作  者     
    2020年3月?
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网