袁春风《计算机系统基础》

¥59.00¥59.00
已下架(本产品缺货或未上线)

商品介绍

内容简介

本书主要介绍与计算机系统相关的核心概念,解释这些概念如何相互关联并终影响程序执行的结果和性能。本书共分8章,主要内容包括数据的表示和运算、程序的转换及机器级表示、程序的链接、程序的执行、存储器层次结构、虚拟存储器、异常控制流和I/O操作的实现等。本书将计算机系统每个抽象层涉及的重要概念通过程序的开发和运行串联起来,内容详尽,反映现实,概念清楚,通俗易懂,实例丰富,并提供大量典型习题以供读者练习。本书可以作为计算机专业本科或大专院校学生计算机系统方面的基础性教材,也可以作为有关专业研究生或计算机技术人员的参考书。

 

目录

CONTENTS 

目录 

丛书序言 

序言 

前言 

第一部分   系统概述和可执行目标文件的生成 

1   计算机系统概述

1.1   计算机基本工作原理

1.1.1   ·诺依曼结构基本思想

1.1.2   ·诺依曼机基本结构

1.1.3   程序和指令的执行过程

1.2   程序的开发与运行

1.2.1   程序设计语言和翻译程序

1.2.2   从源程序到可执行文件

1.2.3   可执行文件的启动和执行10 

1.3   计算机系统的层次结构12 

1.3.1   计算机系统抽象层的转换12 

1.3.2   计算机系统核心层之间的关联14 

1.3.3   计算机系统的不同用户16 

1.4   计算机系统性能评价18 

1.4.1   计算机性能的定义19 

1.4.2   计算机性能的测试19 

1.4.3   用指令执行速度进行性能评估21 

1.4.4   用基准程序进行性能评估22 

1.4.5   Amdahl定律23 

1.5   本书的主要内容和组织结构24 

1.6   小结27 

习题27 

2   数据的机器级表示与处理30 

2.1   数制和编码30 

2.1.1   信息的二进制编码30 

2.1.2   进位计数制32 

2.1.3   定点与浮点表示36 

2.1.4   定点数的编码表示36 

2.2   整数的表示41 

2.2.1   无符号整数和带符号整数的表示41 

2.2.2   C语言中的整数及其相互转换42 

2.3   浮点数的表示44 

2.3.1   浮点数的表示范围44 

2.3.2   浮点数的规格化45 

2.3.3   IEEE 754浮点数标准45 

2.3.4   C语言中的浮点数类型49 

2.4   十进制数的表示51 

2.4.1   ASCII码字符表示51 

2.4.2   BCD码表示51 

2.5   非数值数据的编码表示52 

2.5.1   逻辑值52 

2.5.2   西文字符52 

2.5.3   汉字字符53 

2.6   数据的宽度和存储55 

2.6.1   数据的宽度和单位55 

2.6.2   数据的存储和排列顺序57 

2.7   数据的基本运算61 

2.7.1   按位运算和逻辑运算61 

2.7.2   左移运算和右移运算61 

2.7.3   位扩展运算和位截断运算63 

2.7.4   整数加减运算64 

2.7.5   整数乘除运算68 

2.7.6   常量的乘除运算71 

2.7.7   浮点数运算72 

2.8   小结78 

习题79 

3   程序的转换及机器级表示87 

3.1   程序转换概述87 

3.1.1   机器指令及汇编指令88 

3.1.2   指令集体系结构89 

3.1.3   生成机器代码的过程89 

3.2   IA-32指令系统概述94 

3.2.1   数据类型及其格式95 

3.2.2   寄存器组织和寻址方式96 

3.2.3   机器指令格式101 

3.3   IA-32常用指令类型及其操作103 

3.3.1   传送指令103 

3.3.2   定点算术运算指令106 

3.3.3   按位运算指令109 

3.3.4   控制转移指令110 

3.3.5   x87浮点处理指令115 

3.3.6   MMX/SSE指令集116 

3.4   C语言程序的机器级表示118 

3.4.1   过程调用的机器级表示118 

3.4.2   选择语句的机器级表示132 

3.4.3   循环结构的机器级表示136 

3.5   复杂数据类型的分配和访问139 

3.5.1   数组的分配和访问139 

3.5.2   结构体数据的分配和访问144 

3.5.3   联合体数据的分配和访问146 

3.5.4   数据的对齐148 

3.6   越界访问和缓冲区溢出151 

3.6.1   缓冲区溢出151 

3.6.2   缓冲区溢出攻击153 

3.6.3   缓冲区溢出攻击的防范155 

3.7   兼容IA-3264位系统158 

3.7.1   x86-64的发展简史158 

3.7.2   x86-64的基本特点159 

3.7.3   x86-64的基本指令和对齐159 

3.7.4   x86-64的过程调用161 

3.7.5   x86-64的浮点操作与SIMD指令165 

3.8   小结166 

习题167 

4   程序的链接182 

4.1   编译、汇编和静态链接182 

4.1.1   编译和汇编182 

4.1.2   可执行目标文件的生成184 

4.2   目标文件格式186 

4.2.1   ELF目标文件格式186 

4.2.2   可重定位目标文件格式187 

4.2.3   可执行目标文件格式190 

4.2.4   可执行文件的存储器映像192 

4.3   符号表和符号解析193 

4.3.1   符号和符号表193 

4.3.2   符号解析196 

4.3.3   与静态库的链接199 

4.4   重定位201 

4.4.1   重定位信息202 

4.4.2   重定位过程202 

4.5   动态链接206 

4.5.1   动态链接的特性207 

4.5.2   程序加载时的动态链接207 

4.5.3   程序运行时的动态链接209 

4.5.4   位置无关代码210 

4.6   小结214 

习题215 

第二部分   可执行目标文件的运行 

5   程序的执行222 

5.1   程序执行概述222 

5.1.1   程序及指令的执行过程222 

5.1.2   CPU的基本功能和组成224 

5.1.3   打断程序正常执行的事件226 

5.2   数据通路基本结构和工作原理227 

5.2.1   数据通路基本结构227 

5.2.2   数据通路的时序控制229 

5.2.3   总线式数据通路230 

5.2.4   单周期数据通路235 

5.3   流水线方式下指令的执行238 

 

×

【提醒】购买纸书后,扫码即可免费领取购书大礼包!

如果你已购买本书,请扫一扫封面右上角的二维码,如下图:

如果你未购买纸书,请先购买:

立即购买

长按图片下载到相册
分享到微信、朋友圈、微博、QQ等
朋友注册并购买后,您可赚
取消