第1章 基础知识 1
1.1 汇编语言程序设计中的进位记数制 1
1.1.1 二进制数 1
1.1.2 十六进制数 2
1.1.3 十进制数 2
1.1.4 数制间的转换 2
1.1.5 二进制和十六进制的运算 4
1.2 汇编语言程序设计中数据的表示 5
1.2.1 整数数值数据的表示 5
1.2.2 字符的编码 7
1.3 机器语言、汇编语言、汇编编译器 8
1.3.1 机器语言 9
1.3.2 汇编语言 9
1.3.3 汇编编译器 9
1.3.4 汇编语言的特点及用途 10
本章小结 10
习题1 10
第2章 Intel 80x86汇编语言编程结构 12
2.1 Intel 8086/8088 CPU的汇编语言编程结构 12
2.1.1 8086/8088 CPU结构概述 12
2.1.2 8086/8088 CPU寄存器结构 13
2.1.3 8086/8088 CPU内存组织 16
2.1.4 8086/8088 CPU的I/O组织 21
2.2 Intel的32位CPU汇编语言编程结构 22
2.2.1 工作模式概述 22
2.2.2 Intel 32位CPU的编程结构介绍 23
本章小结 25
习题2 25
第3章 寻址方式 26
3.1 Intel CPU的指令 26
3.1.1 指令与指令系统 26
3.1.2 指令的格式 26
3.2 Intel 8086/8088 CPU的寻址方式 27
3.2.1 立即寻址 28
3.2.2 寄存器寻址 29
3.2.3 直接寻址 29
3.2.4 寄存器间接寻址 31
3.2.5 寄存器相对寻址 32
3.2.6 基址变址寻址 33
3.2.7 相对基址变址寻址 34
3.2.8 端口寻址方式 34
3.3 实例解析 35
本章小结 35
习题3 36
第4章 DEBUG调试 38
4.1 DEBUG命令格式 38
4.1.1 DEBUG调试程序的启动 38
4.1.2 DEBUG命令的格式 40
4.2 DEBUG命令 41
4.2.1 显示内存单元内容命令D(DUMP) 41
4.2.2 修改命令E(Enter) 42
4.2.3 填充命令F(Fill) 43
4.2.4 寄存器命令R(Register) 43
4.2.5 汇编命令A(Assemble) 45
4.2.6 反汇编命令U(Unassemble) 46
4.2.7 运行命令G(Go) 47
4.2.8 跟踪命令T(Trace) 47
4.2.9 继续命令P(Proceed) 49
4.2.10 退出命令Q(Quit) 50
4.3 实例解析 51
本章小结 51
习题4 52
第5章 8086/8088 CPU指令系统 53
5.1 数据传送指令 53
5.1.1 通用传送指令 53
5.1.2 累加器专用传送指令 55
5.1.3 地址传送指令 55
5.1.4 标志位传送指令 56
5.2 算术运算指令 57
5.2.1 加法运算指令 57
5.2.2 减法运算指令 58
5.2.3 乘法运算指令 59
5.2.4 除法运算指令 60
5.2.5 十进制调整指令 62
5.3 逻辑类指令 63
5.3.1 逻辑运算指令 64
5.3.2 移位指令 65
5.4 串操作指令 67
5.4.1 串操作指令概述 67
5.4.2 5种串操作指令 68
5.5 控制转移指令 71
5.5.1 与目标指令地址有关的寻址方式 71
5.5.2 JMP无条件转移指令 73
5.5.3 条件转移指令 73
5.5.4 循环指令 77
5.5.5 子程序调用与返回指令 78
5.6 处理器控制指令 81
5.7 32位CPU扩展的指令 82
5.7.1 Intel 32位CPU扩充的寻址方式 82
5.7.2 80386增强和扩展指令 83
5.7.3 80486新增指令 85
5.7.4 Pentium新增指令 86
5.8 实例解析 87
本章小结 88
习题5 88
第6章 汇编语言程序格式和上机调试 90
6.1 汇编语言源程序与汇编程序 90
6.2 汇编语言语句种类及其格式 90
6.2.1 指令语句 90
6.2.2 伪指令语句 91
6.2.3 标识符 92
6.3 汇编语言中的运算符与表达式 92
6.3.1 常量 92
6.3.2 变量 93
6.3.3 表达式和运算符 94
6.4 伪指令 96
6.4.1 变量定义伪指令 96
6.4.2 符号定义伪指令 96
6.4.3 段结构伪指令 97
6.4.4 源程序开始和结束伪指令 98
6.4.5 定位伪指令ORG与汇编地址计数器 99
6.4.6 过程定义伪指令PROC和ENDP 99
6.5 汇编语言源程序的结构 99
6.6 汇编语言程序的上机过程 100
6.7 实例解析 101
本章小结 107
习题6 107
第7章 汇编语言基本结构与程序设计 110
7.1 汇编语言程序设计的一般方法 110
7.1.1 汇编语言程序设计的一般步骤 110
7.1.2 结构化程序设计 110
7.1.3 流程图画法 112
7.2 顺序程序设计 113
7.3 分支程序的设计 118
7.3.1 两分支程序设计 118
7.3.2 多分支程序设计 121
7.4 循环程序设计 136
7.4.1 单重循环程序设计 136
7.4.2 多重循环程序设计 141
7.5 实例解析 149
本章小结 151
习题7 151
第8章 子程序及模块化程序设计 154
8.1 子程序设计方法 154
8.1.1 子程序定义 154
8.1.2 子程序的调用与返回 155
8.1.3 现场保护与恢复 157
8.1.4 主程序与子程序的参数传递 158
8.2 子程序设计举例 165
8.3 子程序的嵌套与递归 177
8.3.1 子程序的嵌套 177
8.3.2 子程序的递归调用 179
8.4 模块化程序设计 180
8.4.1 基本思想和主要步骤 180
8.4.2 模块间通信的基本方法 181
8.4.3 子程序库建立和使用的方法 182
8.4.4 汇编语言与高级语言的接口 183
8.5 实例解析 184
本章小结 185
习题8 185
第9章 系统中断调用和I/O程序设计 187
9.1 中断概述 187
9.2 BIOS中断调用 187
9.2.1 BIOS中断调用方法 188
9.2.2 常用BIOS中断 188
9.3 DOS功能调用 189
9.3.1 DOS中断调用方法 189
9.3.2 常用DOS中断 189
9.4 I/O程序设计 190
9.4.1 键盘输入中断 190
9.4.2 键盘中断处理过程 190
9.4.3 键盘输入举例 191
9.4.4 屏幕中断功能 192
9.4.5 屏幕输出的举例 193
9.5 实例解析 194
本章小结 196
习题9 196
第10章 高级汇编语言技术 198
10.1 宏汇编 198
10.1.1 宏定义 198
10.1.2 宏调用和宏展开 199
10.1.3 宏调用中的参数使用 200
10.1.4 宏嵌套 201
10.1.5 宏汇编中的伪指令 202
10.1.6 宏在编程中的应用 202
10.2 重复汇编 204
10.2.1 使用REPT伪指令的重复汇编结构 204
10.2.2 使用IRP伪指令的重复汇编结构 205
10.2.3 使用IRPC伪指令的重复汇编结构 205
10.3 条件汇编伪指令 206
10.4 宏指令与子程序的区别 206
10.5 实例解析 207
本章小结 208
习题10 208
第11章 应用系统开发 210
11.1 图形系统开发 210
11.1.1 字符图形显示 210
11.1.2 动画程序的演示 219
11.2 声音系统开发 221
11.2.1 音乐程序 221
11.2.2 定时报警程序 226
11.3 实例解析 230
本章小结 235
习题11 235
第12章 实训 237
实训1 随机数的生成 237
实训2 电话号码查询 237
实训3 学生成绩管理系统 237
附录 238
参考文献 242