第1章 基础知识 1
1.1 汇编语言基本概念 1
1.2 计算机中数的表示 2
1.2.1 进制转换 2
1.2.2 进制运算 5
1.2.3 补码运算 6
1.2.4 编码 9
1.3 实例一 揭开数的面纱 13
1.3.1 数的正确表示 13
1.3.2 数的符号问题 14
习题一 14
测验一 15
第2章 计算机基本原理 16
2.1 冯·诺依曼计算机 16
2.1.1 冯·诺依曼计算机的原理 16
2.1.2 冯·诺依曼计算机的基本结构 17
2.2 微型计算机系统 18
2.2.1 微型计算机系统概念 18
2.2.2 微处理器 19
2.3 80X86寄存器 19
2.3.1 8086寄存器组 20
2.3.2 80X86寄存器组 22
2.4 内存储器 22
2.4.1 物理地址与逻辑地址 22
2.4.2 存储单元 23
2.4.3 存储器分段 24
2.5 实例二 进入计算机 27
2.5.1 调试工具DEBUG 27
2.5.2 实验任务 34
习题二 34
测验二 35
第3章 指令系统与寻址方式 37
3.1 汇编语言指令 37
3.1.1 机器指令 37
3.1.2 汇编指令 38
3.1.3 指令系统 39
3.2 指令的寻址方式 39
3.2.1 寻址方式 39
3.2.2 立即寻址方式 40
3.2.3 寄存器寻址方式 41
3.2.4 存储器寻址方式 41
3.3 实例三 寻找操作数 47
3.3.1 寻址方式的选择 47
3.3.2 实验示例 48
3.3.3 实验任务 49
习题三 49
测验三 50
第4章 汇编语言程序设计 52
4.1 汇编语言程序设计初步 52
4.1.1 第一个汇编语言程序 53
4.1.2 从源程序到可执行程序 54
4.2 伪指令 58
4.2.1 段定义伪操作 58
4.2.2 数据定义伪指令 60
4.2.3 其他伪指令 63
4.3 基本汇编指令 65
4.3.1 数据、栈及查表 66
4.3.2 逻辑地址的获得 72
4.3.3 符号位扩展 73
4.3.4 双精度数运算 73
4.3.5 多字节数运算 75
4.3.6 混合算术运算 77
4.3.7 十进制数运算 80
4.4 屏幕显示和键盘输入 82
4.4.1 DOS功能调用 82
4.4.2 直接写显存显示字符 84
4.5 实例四 带彩色显示的算术程序 86
4.5.1 简化的程序结构 86
4.5.2 实验示例 88
4.5.3 实验任务 89
习题四 89
测验四 91
第5章 分支程序设计 94
5.1 分支的概念 94
5.1.1 分支结构 94
5.1.2 一个分支程序例子 95
5.2 与分支有关的指令 97
5.2.1 转移地址的寻址 98
5.2.2 条件转移方式 100
5.3 位操作的分支程序 103
5.3.1 逻辑运算 104
5.3.2 测试指令TEST 106
5.3.3 移位操作 108
5.3.4 分支程序举例 110
5.4 深入分析转移特征 114
5.4.1 内存空间分配 114
5.4.2 系统启动 114
5.4.3 程序的加载 115
5.4.4 JMP转移特征 117
5.5 实例五 走向分支 118
5.5.1 分支的选择 118
5.5.2 菜单程序设计 120
5.5.3 用分支表实现多路转移 121
5.5.4 实验示例 123
5.5.5 实验任务 124
习题五 124
测验五 126
第6章 循环程序设计 128
6.1 循环的概念 128
6.1.1 循环结构 128
6.1.2 循环程序例子 129
6.1.3 与循环有关的指令 130
6.2 循环指令 130
6.2.1 LOOP循环指令 131
6.2.2 LOOPZ/LOOPE 131
6.2.3 LOOPNZ/LOOPNE 132
6.3 串处理 132
6.3.1 串的概念 132
6.3.2 串处理例子 133
6.3.3 串处理指令 134
6.3.4 串与循环 137
6.4 多重循环 138
6.4.1 多重循环结构 138
6.4.2 排序程序 139
6.5 循环程序举例 140
6.6 实例六 循环之循环 143
6.6.1 循环的执行 143
6.6.2 实验示例 146
6.6.3 实验任务 147
习题六 147
测验六 148
第7章 子程序设计 150
7.1 子程序的概念 150
7.1.1 主程序和子程序 150
7.1.2 一个改造的例子 151
7.2 调用和返回 153
7.2.1 调用指令CALL 153
7.2.2 返回指令RET 154
7.3 过程定义 154
7.3.1 伪指令PROC 154
7.3.2 过程属性 155
7.4 现场保护 155
7.5 子程序参数传递 156
7.5.1 寄存器传参 156
7.5.2 存储单元传参 158
7.5.3 堆栈传参 160
7.6 嵌套与递归 162
7.6.1 子程序嵌套 162
7.6.2 子程序递归 163
7.7 实例七 子程序与模块化 163
7.7.1 模块化结构 163
7.7.2 实验示例 168
7.7.3 实验任务 170
习题七 170
测验七 172
第8章 宏汇编技术 174
8.1 宏 174
8.1.1 宏定义 174
8.1.2 宏调用 175
8.1.3 宏展开 175
8.1.4 宏与子程序 176
8.1.5 宏的参数 177
8.1.6 宏运算 179
8.2 其他宏功能 180
8.2.1 宏标号 180
8.2.2 宏删除 181
8.2.3 宏嵌套 181
8.2.4 宏库建立与调用 182
8.3 结构伪操作 185
8.4 重复汇编和条件汇编 186
8.4.1 重复汇编 186
8.4.2 条件汇编 186
8.5 多模块结构 187
8.5.1 多个代码段下的模块 187
8.5.2 模块的参数设置 188
8.6 实例八 宏与多模块 188
8.6.1 多模块设计 188
8.6.2 一个段的模块 192
8.6.3 实验示例 195
8.6.4 实验任务 197
习题八 197
测验八 199
第9章 中断程序设计 200
9.1 中断的概念 200
9.1.1 软件中断 200
9.1.2 硬件中断 201
9.1.3 中断类型与中断向量 202
9.1.4 中断过程 204
9.2 定制自己的中断 205
9.2.1 软件中断子程序的编写 205
9.2.2 中断的设置 205
9.2.3 软件中断的触发与处理 206
9.2.4 对除0中断的修改 208
9.3 BIOS中断 210
9.3.1 屏幕及光标控制INT 10H 211
9.3.2 键盘中断INT 16H 216
9.3.3 时钟中断INT 1AH 218
9.4 DOS中断 219
9.4.1 DOS显示功能调用 219
9.4.2 DOS键盘功能调用 220
9.4.3 DOS日期、时间功能调用 220
9.5 实例九 中断程序应用 221
9.5.1 时间与计数 221
9.5.2 实验示例 226
9.5.3 实验任务 229
习题九 229
测验九 231
第10章 综合性设计性实验 233
10.1 I/O端口实验 233
10.1.1 I/O端口地址 233
10.1.2 IN指令和OUT指令 234
10.1.3 读取CMOS时钟 235
10.2 实验项目 236
10.2.1 实验一 CMOS时间和日期 236
10.2.2 实验二 英文打字练习软件 237
10.2.3 实验三 英文填字游戏软件 238
10.2.4 实验四 设计一个小计算器 238
10.2.5 实验五 小学生算术练习软件 239
10.2.6 实验六 进制及编码转换工具 240
附录A 8086指令系统表 241
附录B 汇编出错提示信息 248
附录C 汇编语言各章测验答案 251
参考文献 252