更新时间:2024-08-06 16:55:51
封面
版权信息
作者简介
出版说明
前言
第1章 计算机系统概述
1.1 计算机系统的基本工作原理
1.1.1 冯·诺依曼结构的基本思想
1.1.2 冯·诺依曼机的基本结构
1.1.3 程序和指令的执行过程
1.2 程序的开发与运行
1.2.1 程序设计语言和翻译程序
1.2.2 从源程序到可执行文件
1.2.3 可执行文件的启动和执行
1.3 计算机系统的层次结构
1.3.1 计算机系统抽象层的转换
1.3.2 计算机系统核心层之间的关联
1.3.3 计算机系统的不同用户
1.4 本章小结
习题
第2章 数据的机器级表示与处理
2.1 数制和编码
2.1.1 信息的二进制编码
2.1.2 进位计数制
2.1.3 定点数与浮点数
2.1.4 定点数的编码表示
2.2 整数的表示
2.2.1 无符号整数和带符号整数
2.2.2 C语言中的整数及其相互转换
2.3 浮点数的表示
2.3.1 浮点数的表示范围
2.3.2 浮点数的规格化
2.3.3 IEEE 754浮点数标准
2.3.4 C语言中的浮点数类型
2.4 非数值数据的编码表示
2.4.1 逻辑值
2.4.2 西文字符
2.4.3 汉字字符
2.5 数据的宽度和存储
2.5.1 数据的宽度和单位
2.5.2 数据的存储和排列顺序
2.6 数据的基本运算
2.6.1 按位运算和逻辑运算
2.6.2 左移和右移运算
2.6.3 位扩展和位截断运算
2.6.4 整数加减运算
2.6.5 整数乘除运算
2.6.6 常量的乘除运算
2.6.7 浮点数运算
2.7 本章小结
第3章 程序转换与指令系统
3.1 程序转换概述
3.1.1 机器指令和汇编指令
3.1.2 指令集体系结构概述
3.1.3 指令系统设计风格
3.1.4 机器代码的生成过程
3.2 IA-32/x86-64指令系统
3.2.1 操作数类型
3.2.2 寄存器组织
3.2.3 寻址方式
3.2.4 机器指令格式
3.3 IA-32/x86-64常用指令类型及操作
3.3.1 传送指令
3.3.2 定点算术运算指令
3.3.3 按位运算指令
3.3.4 程序执行流控制指令
*3.3.5 x87浮点处理指令
*3.3.6 MMX/SSE/AVX指令
*3.3.7 x86-64中的浮点处理指令
3.4 本章小结
第4章 程序的机器级表示
4.1 过程调用的机器级表示
4.1.1 IA-32的过程调用约定
4.1.2 变量的作用域和生存期
4.1.3 按值传递参数和按地址传递参数
4.1.4 递归过程调用
4.1.5 非静态局部变量的存储分配
4.1.6 x86-64的过程调用
*4.1.7 x86-64过程的浮点参数传递
4.2 流程控制语句的机器级表示
4.2.1 选择语句的机器级表示
4.2.2 循环语句的机器级表示
4.3 复杂数据类型的分配和访问
4.3.1 数组的分配和访问
4.3.2 结构体数据的分配和访问
4.3.3 联合体数据的分配和访问
4.3.4 数据的对齐
4.4 越界访问和缓冲区溢出
4.4.1 数组的越界访问
4.4.2 缓冲区溢出攻击
4.4.3 对缓冲区溢出攻击的防范
4.5 本章小结
第5章 程序的链接与加载执行
5.1 编译、汇编和静态链接
5.1.1 编译和汇编
5.1.2 可执行文件的生成
5.2 目标文件格式