第一部分 使用汇编程序 3
第一章 入门 3
1.1 引言 3
1.2 系统考虑 3
1.3 程序开发周期 3
1.4 开发程序 5
第二章 使用masm 7
2.1 引言 7
2.2 运行汇编程序 7
2.3 使用masm选项 7
2.4 读汇编清单 15
第二部分 使用伪指令 25
第三章 编写源代码 25
3.1 引言 25
3.2 书写汇编语言语句 25
3.3 给符号设置名字 27
3.4 常量 29
3.5 定义默认汇编动作 32
3.6 终止源文件 34
第四章 定义段结构 35
4.1 引言 35
4.2 简化的段定义 35
4.3 完整的段定义 44
4.4 定义段组 50
4.5 使段和寄存器相关 52
4.6 初始化段寄存器 53
4.7 嵌套的段 56
第五章 定义标号和变量 59
5.1 引言 59
5.2 使用类型区分符 59
5.3 定义代码标号 60
5.4 定义和初始化数据 62
5.5 设置存储单元计数器 71
5.6 对齐数据 72
第六章 使用结构和记录 75
6.1 引言 75
6.2 结构 75
6.3 记录 78
第七章 创建多模块的程序 86
7.1 引言 86
7.2 把符号声明为公共的 86
7.3 把符号声明为外部的 87
7.4 使用多个模块 90
7.5 把符号声明为公有的 92
第八章 使用操作数和表达式 96
8.1 引言 96
8.2 使用伪指令中的操作数 96
8.3 使用操作符 97
8.4 使用单元计数器 109
8.5 使用前向引用 110
8.6 强置内存操作数的类型 112
第九章 条件汇编 114
9.1 引言 114
9.2 使用条件汇编伪指令 114
9.3 使用条件错伪指令 117
第十章 使用等式、宏和重复块 122
10.1 引言 122
10.2 使用等式 122
10.3 使用宏 125
10.4 定义重复块 129
10.5 使用宏操作符 131
10.6 使用递归、嵌套和重定义宏 134
10.7 管理宏和等式 138
第十一章 控制汇编输出 140
11.1 引言 140
11.2 发送消息到标准输出 140
11.3 控制清单中的页格式 140
11.4 控制清单的内容 142
11.5 控制交叉引用输出 145
第三部分 使用汇编指令 149
第十二章 8086族处理器 149
12.1 引言 149
12.2 使用8086族处理器 149
12.3 分段寻址 150
12.4 使用8086族处理器 151
12.5 使用80386处理器 156
第十三章 寻址方式 157
13.1 引言 157
13.2 使用立即操作数 157
13.3 使用寄存器操作数 158
13.4 使用存储器操作数 159
第十四章 装入、存储和移动数据 168
14.1 引言 168
14.2 传送数据 168
14.3 转换数据长度 170
14.4 装入指针 172
14.5 传送数据进栈和出栈 174
14.6 向端口写数据和从端口读数据 178
第十五章 算术运算和位操作 180
15.1 引言 180
15.2 加法 180
15.3 减法 182
15.4 乘法 184
15.5 除法 186
15.6 用BCD数计算 187
15.7 逻辑位操作 190
15.8 扫描置位 193
15.9 算术移位和循环移位 194
第十六章 程序流控制 199
16.1 引言 199
16.2 转移 199
16.3 循环 207
16.5 过程使用 209
16.4 条件设置字节 209
16.6 使用中断 216
16.7 内存范围检查 217
第十七章 串处理 219
17.1 引言 219
17.2 建立串操作环境 219
17.3 移动串 221
17.4 搜索串 223
17.5 比较串 224
17.6 填充串 225
17.7 利用串输入值 226
17.8 端口的串传送 227
第十八章 使用算术协处理器进行计算 228
18.1 引言 228
18.2 协处理器结构 228
18.3 仿真 229
18.4 使用协处理器指令 230
18.5 内存存取的协调 233
18.6 数据传送 234
18.7 算术运算 238
18.8 控制程序流 242
18.9 使用超越函数指令 246
18.10 协处理器的控制 247
第十九章 控制处理器 248
19.1 引言 248
19.2 控制定时及边界调整 248
19.3 控制处理器 248
19.4 控制保护态处理 249
19.5 控制80386 249
附录A 新的特点 251
附录B 指令汇总 255
附录C 伪指令汇总 271
附录D 高级语言使用的段名字 275
附录E 出错消息及出口码 280