第1章 汇编语言的基本概念 1
1.1汇编语言概述 1
1.1.1汇编语言与机器语言 1
1.1.2汇编环境介绍 3
1.1.3汇编语言上机过程 3
1.2微型计算机中数的编码和字符的表示 4
1.2.1进位计数制 4
1.2.2进制之间的转换 5
1.2.3无符号数和带符号数 8
1.2.4定点数与浮点数 9
1.2.5计算机中的编码 11
1.3 8086CPU、内存及I/O端口 13
1.3.1内存 13
1.3.2 I/O端口地址 18
1.3.3 8086 CPU的编程结构 19
1.3.4 8086CPU的寄存器 20
1.3.5 80x86CPU的寄存器 23
1.4汇编语言的源程序格式和语句类型 23
1.4.1汇编语言的源程序格式和汇编语言的语句类型 23
1.4.2汇编语言的源程序格式示例 25
1.4.3符号地址 27
1.4.4汇编语言可执行程序的格式 28
1.5汇编语言中操作数的寻址方式 29
1.5.1操作数的寻址方式 29
1.5.2操作数的寻址方式在指令中的运用 30
1.5.3关于寻址方式的3点说明 35
1.6本章小结与学习目标 36
1.7习题一 36
第2章 汇编语言程序中的指令与伪指令 40
2.1汇编语言的语句格式、运算符及表达式 40
2.1.1汇编语言语句格式 40
2.1.2操作数及其表达式 42
2.1.3操作数表达式中的运算符 44
2.2汇编语言程序中的伪指令 48
2.2.1段定义伪指令 48
2.2.2 ASSUME伪指令 48
2.2.3数据定义伪指令 50
2.2.4符号定义伪指令 51
2.2.5用伪指令LABEL定义变量和标号 53
2.2.6 PTR操作符、LABEL伪指令与THIS操作符的区别 54
2.2.7置汇编地址计数器伪指令 55
2.2.8地址定位伪操作 56
2.2.9基数控制伪指令 57
2.2.10过程定义伪指令PROC和ENDP 58
2.3 8086/8088处理器的汇编语言常用指令 58
2.3.1数据传送指令 58
2.3.2算术运算指令 67
2.3.3逻辑运算指令 81
2.3.4移位指令 83
2.3.5循环移位指令 86
2.3.6串操作指令 88
2.3.7与转移地址有关的寻址方式——无条件跳转指令JMp 89
2.3.8处理机控制指令 93
2.4 32位新增指令简介 94
2.4.1寻址方式的变化 94
2.4.2 32位新增指令 94
2.5本章小结与学习目标 99
2.6习题二 99
第3章 汇编语言程序设计初步 104
3.1系统功能调用 104
3.1.1系统功能调用概述 104
3.1.2输入输出(I/O)系统功能调用 105
3.2汇编语言源程序的基本框架和设计的基本步骤 108
3.2.1源程序的基本框架 108
3.2.2源程序设计的基本步骤 111
3.3顺序结构的汇编语言源程序的编写 111
3.4分支结构的汇编语言源程序的编写 115
3.4.1条件转移指令 115
3.4.2汇编语言分支结构程序的编写 117
3.5循环结构的汇编语言源程序的编写 124
3.5.1循环控制指令 124
3.5.2程序的循环结构 125
3.5.3控制程序循环的方法 125
3.5.4多重循环 134
3.6本章小结与学习目标 136
3.7习题三 137
第4章 子程序设计 140
4.1子程序的定义和格式及设计步骤 140
4.1.1子程序的定义和格式 140
4.1.2子程序的设计步骤和子程序的说明文件 141
4.2子程序的调用和返回 142
4.2.1调用与返回指令 143
4.2.2现场的保护与恢复 146
4.3主程序与子程序之间传递参数的方式 147
4.3.1寄存器法 148
4.3.2约定存储单元法 151
4.3.3堆栈传递参数法 155
4.4子程序设计举例 159
4.5子程序嵌套 162
4.5.1子程序的嵌套 162
4.5.2子程序的递归和可再入性 162
4.6本章小结与学习目标 166
4.7习题四 166
第5章 汇编语言程序的应用示例 170
5.1数学运算的汇编语言程序示例 170
5.1.1四则运算类程序示例 170
5.1.2求一个数的平方根程序示例 172
5.1.3求一个数的绝对值程序示例 174
5.1.4求一个数的相反数程序示例 175
5.1.5累加求和程序示例 177
5.1.6计算一个复杂表达式的累加和——提高循环程序的效率示例 180
5.1.7矩阵乘法程序示例 182
5.2汇编语言的字符串 185
5.2.1字符串及其操作指令 185
5.2.2字符串的运算概述 188
5.3数据的分类和统计程序 202
5.4代码转换 215
5.4.1进制转换 215
5.4.2其他代码转换 218
5.5列表 220
5.5.1常数表 221
5.5.2利用表实现码之间的转换 222
5.6本章小结与学习目标 223
5.7习题五 223
第6章 输入输出和中断处理 225
6.1输入输出和中断的基本概念 225
6.1.1 I/O方式概述 225
6.1.2中断与中断分类 227
6.1.3中断向量与中断向量表 229
6.1.4中断指令 230
6.1.5中断处理过程 231
6.1.6中断优先级与中断嵌套 232
6.1.7存储器直接访问(DMA)方式 233
6.1.8 I/O处理机方式 234
6.2 BIOS和DOS及其中断调用 234
6.2.1 DOS中断 235
6.2.2系统功能INT 21H的调用方法 236
6.3常用BIOS中断调用 243
6.3.1 BIOS中断的分类 243
6.3.2常用BIOS调用 244
6.3.3 INT 16H(键盘I/O调用) 244
6.3.4显示器调用 246
6.4文件管理 259
6.4.1 DOS磁盘管理 259
6.4.2 BIOS磁盘存取功能 262
6.5中断处理程序设计 264
6.6本章小结与学习目标 269
6.7习题六 270
第7章 宏和多模块程序设计 272
7.1宏 272
7.1.1宏定义 272
7.1.2宏调用 274
7.1.3宏展开 274
7.1.4宏的参数传递 275
7.1.5特殊宏操作符 276
7.1.6宏体中的变量和标号 279
7.2宏嵌套 281
7.2.1宏定义中嵌套宏定义 282
7.2.2宏定义中嵌套宏调用 282
7.3重复汇编伪指令和条件汇编伪指令 283
7.3.1重复汇编伪指令REPT 284
7.3.2重复汇编伪指令IRP 285
7.3.3重复汇编伪指令IRPC 285
7.3.4条件汇编伪指令IF 286
7.4宏汇编语言源程序举例和宏与子程序的区别 287
7.4.1宏汇编程序举例 287
7.4.2宏与子程序的区别 289
7.5多模块程序设计 290
7.6汇编语言与高级语言的连接 301
7.7本章小结与学习目标 306
7.8习题七 306
第8章 汇编语言程序开发与调试 308
8.1汇编语言程序开发过程 308
8.2汇编语言程序的调试方法 312
附录 318
附录A ASCII码表 318
附录B Pentium指令系统一览表 318
附录C BIOS调用 323
附录D DOS功能调用说明 332
附录E IBM PC的键盘输入码和CRT显示码 338
参考文献 340