第1章 引言 1
1.1欢迎加入编程大军 1
1.2工具 2
第2章 计算机体系结构 5
2.1内存结构 5
2.2 CPU构造 6
2.3几个术语 7
2.4内存详解 9
2.5寻址方式 10
2.6温故知新 11
2.6.1理解概念 11
2.6.2应用概念 11
2.6.3深入学习 12
第3章 编写第一个程序 13
3.1编程初体验 13
3.2汇编语言程序概要 15
3.3为程序做规划 19
3.4查找最大值 21
3.5寻址方式 27
3.6温故知新 30
3.6.1理解概念 30
3.6.2应用概念 30
3.6.3深入学习 31
第4章 关于函数 32
4.1处理复杂度 32
4.2函数的工作原理 33
4.3使用C调用约定的汇编语言函数 34
4.4函数示例 38
4.5递归函数 41
4.6温故知新 46
4.6.1理解概念 46
4.6.2应用概念 47
4.6.3深入学习 47
第5章 文件处理 48
5.1UNIX文件的概念 48
5.2缓冲区和.bss 49
5.3标准文件和特殊文件 50
5.4在程序中使用文件 51
5.5温故知新 60
5.5.1理解概念 60
5.5.2应用概念 61
5.5.3深入学习 61
第6章 读写简单记录 62
6.1写入记录 65
6.2读取记录 69
6.3修改记录 73
6.4温故知新 76
6.4.1理解概念 76
6.4.2应用概念 76
6.4.3深入学习 76
第7章 开发健壮的程序 77
7.1将时间用在何处 77
7.2开发健壮程序的技巧 78
7.2.1用户测试 78
7.2.2数据测试 78
7.2.3模块测试 79
7.3有效处理错误 80
7.3.1万能的错误处理代码 80
7.3.2恢复点 80
7.4让程序更健壮 81
7.5温故知新 83
7.5.1理解概念 83
7.5.2应用概念 83
7.5.3深入学习 83
第8章 与代码库共享程序 84
8.1使用共享库 85
8.2共享库的工作原理 86
8.3查找关于库的信息 87
8.4一些有用的函数 91
8.5构建一个共享库 92
8.6温故知新 93
8.6.1理解概念 93
8.6.2应用概念 94
8.6.3深入学习 94
第9章 关于中间存储器 95
9.1计算机如何看待内存 95
9.2 Linux程序的内存布局 96
9.3每个内存地址都是虚拟的 98
9.4获取更多的内存 100
9.5一个简单的内存管理器 101
9.5.1变量和常量 106
9.5.2性能问题及其他 111
9.6使用我们的分配器 112
9.7更多信息 114
9.8温故知新 114
9.8.1理解概念 114
9.8.2应用概念 114
9.8.3深入学习 115
第10章 像计算机一样计数 116
10.1计数 116
10.1.1像人类一样计数 116
10.1.2像计葬机一样计数 117
10.1.3二进制和十进制之间的转换 118
10.2真假和二进制数 120
10.3程序状态寄存器 126
10.4其他计数系统 127
10.4.1浮点数 127
10.4.2负数 128
10.5八进制和十六进制数字 129
10.6一个字中的字节顺序 130
10.7将数字转换成字符显示 131
10.8温故知新 135
10.8.1理解概念 135
10.8.2应用概念 136
10.8.3深入学习 136
第11章 高级语言 137
11.1编译语言和解释语言 137
11.2第一个C程序 138
11.3 Perl 140
11.4 Python 141
11.5温故知新 141
11.5.1理解概念 141
11.5.2应用概念 141
11.5.3深入学习 142
第12章 优化 143
12.1何时优化 143
12.2优化何处 144
12.3局部优化 145
12.4全局优化 146
12.5温故知新 147
12.5.1理解概念 147
12.5.2应用概念 148
12.5.3深入学习 148
第13章 学无止境 149
13.1自下而上 150
13.2自顶向下 150
13.3从中间开始 150
13.4专题 151
13.5汇编语言的更多资源 152
附录A GUI编程 153
附录B通用x86指令 165
附录C重要的系统调用 172
附录D ASCII码 174
附录E汇编语言中的常用C语句 175
附录F使用GDB调试器 183
附录G文档历史 189
附录H GNU自由文档许可协议 190
附录I致谢 196
索引 197