第1章 汇编语言基础 1
1.1英特尔80x86处理器 1
1.1.1 16位80x86处理器 1
1.1.2 IA-32处理器 2
1.1.3 Intel 64处理器 3
1.2个人计算机系统 4
1.2.1硬件组成 4
1.2.2寄存器 6
1.2.3存储器组织 10
1.2.4程序设计语言 16
1.2.5软件系统 18
1.3汇编语言程序格式 21
1.3.1指令代码格式 21
1.3.2语句格式 24
1.3.3源程序格式 26
1.3.4开发过程 32
习题1 37
第2章 数据表示和寻址 39
2.1数据表示 39
2.1.1数制 39
2.1.2数值的编码 42
2.1.3字符的编码 44
2.2常量表达 47
2.3变量应用 49
2.3.1变量定义 50
2.3.2变量属性 55
2.4数据寻址方式 58
2.4.1立即数寻址 58
2.4.2寄存器寻址 59
2.4.3存储器寻址 60
2.4.4数据寻址的组合 65
习题2 66
第3章 通用数据处理指令 70
3.1数据传送类指令 70
3.1.1通用传送指令 70
3.1.2堆栈操作指令 72
3.1.3其他传送指令 75
3.2算术运算类指令 80
3.2.1状态标志 80
3.2.2加法指令 82
3.2.3减法指令 84
3.2.4乘法和除法指令 85
3.2.5其他运算指令 87
3.3位操作类指令 89
3.3.1逻辑运算指令 89
3.3.2移位指令 93
习题3 97
第4章 程序结构 104
4.1顺序程序结构 104
4.2分支程序结构 105
4.2.1无条件转移指令 105
4.2.2条件转移指令 109
4.2.3单分支结构 113
4.2.4双分支结构 114
4.2.5多分支结构 116
4.3循环程序结构 119
4.3.1循环指令 119
4.3.2计数控制循环 121
4.3.3条件控制循环 122
4.3.4多重循环 124
4.3.5串操作指令 126
习题4 131
第5章 模块化程序设计 136
5.1子程序结构 136
5.1.1子程序指令 136
5.1.2子程序设计 139
5.2参数传递 140
5.2.1寄存器传递参数 141
5.2.2共享变量传递参数 144
5.2.3堆栈传递参数 147
5.3多模块程序结构 150
5.3.1源文件包含 150
5.3.2模块连接 154
5.3.3子程序库 155
5.4宏结构 156
5.4.1宏汇编 156
5.4.2重复汇编 163
5.4.3条件汇编 165
习题5 168
第6章Windows编程 172
6.1操作系统函数调用 172
6.1.1动态连接库 172
6.1.2 MASM的过程声明和调用 173
6.1.3程序退出函数 174
6.1.4 Windows程序格式 175
6.2控制台应用程序 176
6.2.1控制台输出 176
6.2.2控制台输入 179
6.3图形窗口应用程序 182
6.3.1消息窗口 182
6.3.2结构变量 184
6.3.3 MASM的高级语言特性 186
6.3.4简单窗口程序 194
习题6 201
第7章与Visual C+++的混合编程 205
7.1嵌入汇编 205
7.2模块连接 209
7.2.1约定规则 209
7.2.2堆栈帧 211
7.3调用高级语言函数 219
7.3.1嵌入汇编中调用高级语言函数 219
7.3.2汇编语言中调用C库函数 220
7.4使用Visual C+++开发环境 221
7.4.1汇编语言程序的开发过程 221
7.4.2汇编语言程序的调试过程 223
习题7 226
第8章 浮点、多媒体及64位指令 231
8.1浮点指令 231
8.1.1实数编码 232
8.1.2浮点寄存器 235
8.1.3浮点指令编程 238
8.2多媒体指令 241
8.2.1 MMX 242
8.2.2 SSE 244
8.2.3 SSE2 246
8.2.4 SSE3 247
8.3 64位指令 248
8.3.1 64位方式的运行环境 249
8.3.2 64位方式的指令 250
习题8 251
附录A调试程序CodeView 254
A.1 CodeView的菜单命令 255
A.2 CodeView的窗口 256
A.3 CodeView的设置 258
A.4使用CodeView的调试示例 260
附录B常用DOS功能调用 266
附录C输入输出子程序库 267
附录D 32位通用指令列表 270
附录E MASM伪指令和操作符列表 275
附录F列表文件符号说明 277
附录G常见汇编错误信息 278
参考文献 281