第一章 基础知识 1
1.1 微型计算机的基本结构 1
目录 1
1.2 汇编语言的基本概念 2
1.2.1 汇编语言 2
1.2.2 汇编语言源程序 2
1.2.3 目标程序 2
1.2.4 汇编程序 2
1.3 为什么要用汇编语言编写程序 2
1.4.1 二进制数的表示 3
1.4 计算机数据表示 3
1.4.2 十六进制数的表示 4
1.4.3 数制转换 5
1.4.4 带符号二进制数的表示 7
1.4.5 数的补码表示 8
1.4.6 字节(BYTE)、字(WORD)、双字(DWORD)、四字(QWORD)和十字节(TBYTE) 9
1.4.7 ASCII码 11
1.4.8 BCD码 11
1.5.4 ASCII字符 12
1.5.3 BCD码(二进制编码的十进制数) 12
1.5.5 逻辑地址 12
1.5.1 无符号二进制数 12
1.5.2 有符号二进制数 12
1.5 80386/80286处理的数据类型 12
1.5.6 位 13
1.5.7 串 13
第二章 80386/80286微处理器及寻址方式 14
2.1 80286微处理器 14
2.1.1 性能介绍 14
2.1.2 80286的系统结构 14
2.1.3 80286的寄存器及功能 16
2.1.4 80286保护方式下的中断和异常 20
2.2 80386微处理器 21
2.2.1 性能介绍 21
2.2.2 80386的寄存器及功能 21
2.2.3 80386的中断和异常 26
2.3 80386/80286的实地址存储管理和寻址方式 27
2.3.1 80386/80286的实地址存储管理 27
2.3.2 段寄存器的隐含访问和取代 27
2.3.3 80386/80286的寻址方式 28
第三章 80386/80286指令系统 31
3.1 指令格式 31
3.1.1 标号 31
3.1.2 指令助记符 32
3.1.3 操作数 32
3.1.4 注释 32
3.2 指令集 32
3.2.1 数据传送指令 33
3.2.2 算术运算指令 41
3.2.3 逻辑运算指令 50
3.2.4 串操作指令 56
3.2.5 控制转移指令 61
3.2.6 条件字节设置指令(仅适用于80386) 67
3.2.7 处理器控制指令 68
3.2.8 位操作指令(仅适用于80386) 69
3.2.9 高级语言支持指令 70
3.2.10 保护方式指令 72
4.1 基本伪指令 76
4.1.1 程序结构伪指令 76
第四章 源程序结构及汇编语言程序的上机过程 76
4.1.2 数据定义伪指令 77
4.2 源程序结构 78
4.2.1 源程序的一般结构 78
4.2.2 常用的源程序结构 79
4.2.3 小模式的源程序结构 81
4.3 汇编语言程序的正常结束方式 81
4.3.1 采用DOS 4CH号功能调用 81
4.3.2 将主程序定义为远过程 81
4.4 完整源程序样例 82
4.3.4 利用DOS的0号功能调用 82
4.3.3 利用20H号中断调用 82
4.5 汇编语言程序上机过程 84
4.5.1 编辑汇编源程序 84
4.5.2 汇编源程序文件(ASM)产生目标文件(OBJ) 84
4.5.3 连接目标文件产生可执行文件(EXE) 87
4.5.4 运行程序 88
4.5.5 DEBUG调试程序 88
第五章 汇编语言与汇编程序 93
5.1 汇编语言语句及其格式 93
5.1.2 助记符与定义符 94
5.1.3 操作数 94
5.1.1 标号及名字 94
5.1.4 注释 95
5.2 伪指令及其使用 95
5.2.1 方式伪指令 96
5.2.2 数据伪指令 99
5.2.3 条件汇编伪指令 123
5.2.4 宏指令 126
5.2.5 列表伪指令 138
5.3.1 算术操作符 142
5.3 汇编语言操作符及其使用 142
5.3.2 移位操作符 144
5.3.3 逻辑操作符 144
5.3.4 关系操作符 145
5.3.5 回送值操作符 146
5.3.6 类型操作符 147
5.3.7 操作符优先级 150
第六章 程序设计基本方法、技巧及实例 152
6.1 输入/输出DOS功能调用简介 152
6.1.2 字符输出(2号)功能调用 153
6.1.3 字符串输出(9号)功能调用 153
6.1.1 字符输入(1号)功能调用 153
6.1.4 字符串输入(10号)功能调用 154
6.2 顺序程序设计 154
6.3 分支程序设计 155
6.3.1 分支程序的结构 155
6.3.2 分支程序设计方法 156
6.4 循环程序设计 161
6.4.1 循环程序的组成 161
6.4.2 循环程序的基本结构形式 161
6.4.3 多重循环 169
6.5.1 子程序调用及返回过程中的现场保护与恢复 171
6.5 子程序设计 172
6.5.2 主程序与子程序之间的参数传送 174
6.5.3 嵌套与递归子程序 183
6.6 多模块程序设计 188
6.7 程序设计技巧与应用实例 192
6.7.1 算术运算程序设计 193
6.7.2 串操作程序设计 194
6.7.3 代码转换程序设计 196
6.7.4 表处理程序设计 197
6.7.5 文件操作程序设计 199
6.7.6 图形显示实例 202
7.1 输入与输出 204
7.1.1 I/O接口器件 204
7.1.2 I/O端口的编址 204
第七章 输入输出与中断 204
7.1.3 CPU与外设的通信内容 205
7.1.4 CPU与外设的通信方式 205
7.2 中断与异常 209
7.2.1 中断与异常的概念 209
7.2.2 实地址方式下的中断与异常 209
8.2 80387/80287的基本结构 212
8.2.1 浮动堆栈 212
第八章 80387/80287协处理器 212
8.1 80387/80287介绍 212
8.2.2 状态字 213
8.2.3 控制字 214
8.2.4 特征字 214
8.3 80387/80287处理的数据类型 215
8.3.1 二进制整数 215
8.3.2 压缩的十进制计数法 215
8.3.3 短实数、长实数和暂存实数格式 215
8.3.4 特殊数值 216
8.4 80387/80287的指令系统 217
8.5 80387/80287程序设计举例 238
第九章 DOS和BIOS的使用 241
9.1 DOS操作系统的使用 241
9.1.1 DOS操作系统介绍 241
9.1.2 DOS操作系统的系统功能调用 242
9.1.3 中断调用21H 244
9.2 BIOS的使用 267
9.2.1 BIOS中断类型 267
9.2.2 常用的BIOS中断调用的功能 268
第十章 汇编语言与高级语言的接口 303
10.1 MICROSOFT宏汇编程序与TURBO PASCAL的接口 304
10.1.1 远调用 305
10.1.2 近调用 307
10.2 MICROSOFT宏汇编与TURBO C的接口 308
附录A MASM 5.0宏汇编程序格式 313
附录B LINK连接程序格式 314
附录C 80386/80286/8086指令集 315
附录D 80387/80287/8087指令集 326
参考文献 331