第一部分 汇编语言程序设计基础 3
第一章 认识汇编语言 3
1.1什么是汇编语言 3
1.2学习汇编语言的意义 8
1.3汇编语言程序的组成 9
第二章IA-32硬件平台 17
2.1 IA-32处理器的功能结构 17
2.2 IA-32处理器的寄存器 21
2.3 IA-32处理器的存储器组织 27
第三章 数据表示和寻址方式 34
3.1数据表示 34
3.2常量和变量 41
3.3数据寻址方式 46
第四章Linux系统汇编程序开发工具 56
4.1 Linux系统简介 56
4.2汇编程序开发工具 62
第二部分IA-32处理器的基本指令系统 81
第五章 数据传送类指令 81
5.1传送类指令MQV 81
5.2交换指令XCHG 89
5.3堆栈操作类指令 91
5.4其他传送指令 95
第六章 算术运算类指令 103
6.1加法指令 103
6.2减法指令 110
6.3乘法指令 117
6.4除法指令 122
6.5十进制调整指令 124
第七章 位操作类指令 128
7.1逻辑运算指令 128
7.2移位指令 134
第八章 串操作类指令 141
8.1串传送指令 141
8.2加载和存储数据串指令 152
8.3比较字符串指令 156
8.4扫描字符串以查找某个字符或字符串 161
第九章 分支程序结构类指令 168
9.1无条件转移指令 168
9.2条件转移指令 172
9.3单分支结构 180
9.4双分支结构 181
第十章 循环程序结构类指令 186
10.1循环程序结构 186
10.2循环指令 187
10.3计数控制循环 189
10.4条件控制循环 190
第十一章 子程序设计 195
11.1子程序的概念与特性 195
11.2子程序的定义 196
11.3子程序的调用和返回 197
11.4子程序的位置 199
11.5现场保护和现场恢复 200
11.6子程序设计简介 201
11.7子程序设计综合实例 205
第三部分 高级汇编语言技术 223
第十二章Linux系统调用 223
12.1系统调用的基本概念 223
12.2查找系统调用 223
12.3常用系统调用 224
12.4使用系统调用 227
12.5系统调用实例 228
12.6跟踪系统调用 239
第十三章 汇编语言和C语言混合编程 246
13.1内联汇编技术 246
13.2调用汇编库 255
13.3创建汇编库 262
第十四章 使用文件 268
14.1文件的处理过程 268
14.2文件的访问类型 269
14.3文件的访问权限 269
14.4文件的打开 270
14.5文件的关闭 271
14.6写文件 272
14.7读文件 273
14.8内存映射文件 275
第十五章 使用IA-32的高级特性 281
15.1 SIMD简介 281
15.2检测支持的SIMD操作 287
15.3 MMX指令及其编程 290
15.4 SSE指令及其编程 301
15.5 SSE2指令 311
15.6 SSE3指令 321
附录 323
附录A ASCII码表 323
附录B IA-32处理器常用整数指令一览 326
附录C Linux系统调用列表 331
参考文献 336