第1章 汇编语言基础知识 1
1.1 汇编语言概述 1
1.1.1 汇编语言的基本概念 1
1.1.2 汇编语言的特点 1
1.2 进位计数制及其转换 2
1.2.1 数与数制 3
1.2.2 不同数制之间的转换 3
1.3 计算机中数与字符的表示方法 9
1.3.1 数值数据的编码及其运算 9
1.3.2 非数值数据的二进制编码 16
习题1 18
第2章 微型计算机结构 20
2.1 80x86微处理器概述 20
2.1.1 微处理器发展简介 20
2.1.2 与微处理器相关的概念 20
2.2 基于微处理器的计算机系统构成 22
2.2.1 硬件系统 22
2.2.2 软件系统 24
2.3 微处理器 26
2.3.1 微处理器的结构 26
2.3.2 80x86寄存器组 29
2.4 存储器 33
2.4.1 存储单元的地址和内容 33
2.4.2 实模式存储器寻址 35
2.4.3 保护模式存储器寻址 38
习题2 40
第3章 指令系统和寻址方式 42
3.1 指令系统概述 42
3.2 8086/8088 CPU的寻址方式 43
3.2.1 数据寻址方式 43
3.2.2 指令寻址方式 51
3.3 8086/8088 CPU的指令系统 53
3.3.1 数据传送指令 53
3.3.2 算术运算指令 60
3.3.3 逻辑运算和移位指令 67
3.3.4 串操作指令 71
3.3.5 控制转移指令 75
3.3.6 处理器控制指令 87
3.4 80x86及Pentium CPU扩充和增加的指令 88
3.4.1 数据传送指令 88
3.4.2 算术运算指令 92
3.4.3 逻辑运算和移位指令 93
3.4.4 串操作指令 95
3.4.5 控制转移指令 95
3.4.6 处理器控制指令 96
3.4.7 条件置位指令 98
习题3 99
第4章 汇编语言语法及其程序格式 102
4.1 汇编语言语句格式 102
4.1.1 语句种类 102
4.1.2 语句格式 103
4.2 伪指令 105
4.2.1 定义符号的伪指令 105
4.2.2 定义数据的伪指令 106
4.2.3 定义程序开始和结束的伪指令 110
4.2.4 指令集选择伪指令 111
4.2.5 地址计数器与对准伪指令 112
4.2.6 基数控制伪指令 113
4.2.7 过程定义伪指令 114
4.3 汇编语言源程序结构 114
4.3.1 完整段定义的程序结构 114
4.3.2 简化段定义的程序结构 116
4.3.3 段组定义的程序结构 121
4.4 汇编语言程序的上机过程 122
4.4.1 建立汇编语言的工作环境 123
4.4.2 汇编语言上机过程 123
4.5 动态调试程序DEBUG 128
4.5.1 DEBUG的启动与退出 128
4.5.2 汇编、执行、跟踪和反汇编 129
4.5.3 显示、修改内存和寄存器命令 130
4.5.4 磁盘文件操作 131
4.5.5 移动、比较、填充和查找内存命令 132
4.5.6 其他命令 133
习题4 133
第5章 程序控制结构及其程序设计 137
5.1 汇编语言程序设计概述 137
5.1.1 汇编语言程序设计的基本步骤 137
5.1.2 程序流程图 138
5.2 顺序程序设计 141
5.3 分支程序设计 143
5.3.1 分支程序的结构形式 143
5.3.2 分支程序设计方法 144
5.3.3 跳跃表法 147
5.4 循环程序设计 148
5.4.1 循环程序结构 148
5.4.2 循环程序设计方法 149
5.4.3 多重循环程序设计 157
5.4.4 串操作程序 159
5.5 在实模式下发挥80386及其后继机型的优势 164
5.5.1 充分利用高档机的32位字长特性 164
5.5.2 通用寄存器可作为指针寄存器 166
5.5.3 与比例因子有关的寻址方式 167
习题5 168
第6章 子程序结构 170
6.1 子程序的概念 170
6.1.1 子程序概念 170
6.1.2 子程序特性 170
6.2 子程序结构形式与操作 171
6.2.1 子程序定义 171
6.2.2 子程序的调用和返回 173
6.2.3 现场保护与现场恢复 173
6.3 子程序的参数传送 174
6.3.1 通过寄存器传送参数 174
6.3.2 直接参数传递 176
6.3.3 通过地址表传递参数地址 178
6.3.4 通过堆栈传送参数或参数地址 179
6.3.5 增强功能的子程序定义伪指令 181
6.4 子程序的嵌套与递归 186
6.4.1 子程序的嵌套 186
6.4.2 子程序的递归调用 188
习题6 189
第7章 高级汇编语言技术 191
7.1 宏汇编 191
7.1.1 宏指令的定义、调用和展开 191
7.1.2 宏体特殊处理伪指令 194
7.1.3 宏操作符 195
7.1.4 宏库的建立与使用 197
7.1.5 宏指令与子程序的区别 198
7.2 重复汇编 199
7.2.1 固定重复伪指令REPT 199
7.2.2 不定重复伪指令IRP 200
7.2.3 单字符不定重复伪指令IRPC 201
7.3 条件汇编 202
习题7 205
第8章 输入/输出和中断程序设计 207
8.1 I/O设备的数据传送方式 207
8.1.1 CPU与外设的数据传送方式 207
8.1.2 I/O端口与端口地址 208
8.1.3 I/O指令 208
8.1.4 程序直接控制I/O方式 210
8.2 中断传送 211
8.2.1 中断与中断源 211
8.2.2 中断分类 212
8.2.3 中断向量表 213
8.2.4 中断响应过程 215
8.2.5 中断优先级与中断嵌套 215
8.2.6 中断指令 216
8.3 中断处理程序设计 216
8.3.1 中断处理程序结构 216
8.3.2 设置中断向量 217
8.3.3 中断程序设计举例 218
8.4 BIOS中断调用 222
8.4.1 BIOS中断调用概述 222
8.4.2 BIOS中断调用方法 222
8.5 DOS功能调用 236
8.5.1 DOS功能调用概述 236
8.5.2 DOS功能调用方法 236
习题8 246
第9章 多模块程序设计与混合编程 247
9.1 多模块程序设计的基本概念 247
9.2 汇编语言程序的多模块连接 248
9.2.1 多模块之间段的连接 248
9.2.2 模块间的交叉访问 251
9.3 汇编语言与高级程序的连接 260
9.3.1 调用协议 261
9.3.2 汇编语言与C语言的接口 263
9.3.3 汇编语言与PASCAL语言的接口 278
习题9 285
第10章 汇编语言程序设计实例 282
10.1 视频显示系统程序设计 286
10.1.1 显示方式 286
10.1.2 DOS功能调用显示技术 288
10.1.3 BIOS功能调用显示技术 290
10.1.4 彩色图形显示 293
10.2 音频发声系统程序设计 298
10.2.1 PC机的发声原理 298
10.2.2 发音程序 299
10.2.3 乐曲演奏程序 300
10.3 数据通信系统程序设计 303
10.3.1 并行通信接口I/O 303
10.3.2 串行通信接口I/O 304
习题10 306
附录 308
附录1 ASCII码表 308
附录2 80x86/Pentium指令系统一览表 309
附录3 动态调试工具软件DEBUG命令表 325
附录4 汇编语言常见出错信息 327
附录5 常用DOS功能调用(INT 21H) 332
参考文献 337