第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 实例一 揭开数的面纱 12
1.3.1 数的正确表示 12
1.3.2 数的符号问题 12
习题一 13
测验一 14
第2章 计算机基本原理 15
2.1 冯·诺依曼计算机 15
2.1.1 冯·诺依曼计算机的原理 15
2.1.2 冯·诺依曼计算机的基本结构 16
2.2 微型计算机系统 17
2.2.1 微型计算机系统概念 17
2.2.2 微处理器 17
2.3 80X86寄存器 18
2.3.1 8086寄存器组 18
2.3.2 80X86寄存器组 20
2.4 内存储器 21
2.4.1 物理地址与逻辑地址 21
2.4.2 存储单元 22
2.4.3 存储器分段 23
2.5 实例二 进入计算机 25
2.5.1 调试工具DEBUG 25
2.5.2 实验任务 32
习题二 32
测验二 33
第3章 指令系统与寻址方式 35
3.1 汇编语言指令 35
3.1.1 机器指令 35
3.1.2 汇编指令 36
3.1.3 指令系统 37
3.2 指令的寻址方式 37
3.2.1 寻址方式 37
3.2.2 立即寻址方式 38
3.2.3 寄存器寻址方式 38
3.2.4 存储器寻址方式 39
3.3 实例三 寻找操作数 45
3.3.1 寻址方式的选择 45
3.3.2 实验示例 46
3.3.3 实验任务 47
习题三 47
测验三 48
第4章 汇编语言程序设计 50
4.1 汇编语言程序设计初步 50
4.1.1 第一个汇编语言程序 51
4.1.2 从源程序到可执行程序 52
4.2 伪指令 57
4.2.1 段定义伪操作 57
4.2.2 数据定义伪指令 59
4.2.3 其他伪指令 62
4.3 基本汇编指令 64
4.3.1 数据、栈及查表 64
4.3.2 逻辑地址的获得 70
4.3.3 符号位扩展 71
4.3.4 双精度数运算 71
4.3.5 多字节数运算 73
4.3.6 混合算术运算 75
4.3.7 十进制数运算 78
4.4 屏幕显示和键盘输入 80
4.4.1 DOS功能调用 81
4.4.2 直接写显存显示字符 83
4.5 实例四 带彩色显示的算术程序 85
4.5.1 简化的程序结构 85
4.5.2 实验示例 86
4.5.3 实验任务 87
习题四 88
测验四 89
第5章 分支程序设计 92
5.1 分支的概念 92
5.1.1 分支结构 92
5.1.2 分支程序例子 93
5.2 与分支有关的指令 95
5.2.1 转移地址的寻址 95
5.2.2 条件转移方式 97
5.3 位操作的分支程序 101
5.3.1 逻辑运算 101
5.3.2 测试指令TEST 103
5.3.3 移位操作 105
5.3.4 处理机控制指令 107
5.3.5 分支程序举例 107
5.4 深入分析转移特征 111
5.4.1 内存空间分配 111
5.4.2 系统启动 112
5.4.3 程序的加载 112
5.4.4 JMP转移特征 114
5.5 实例五 走向分支 115
5.5.1 分支的选择 115
5.5.2 菜单程序设计 117
5.5.3 用分支表实现多路转移 119
5.5.4 实验示例 121
5.5.5 实验任务 122
习题五 122
测验五 124
第6章 循环程序设计 126
6.1 循环的概念 126
6.1.1 循环结构 126
6.1.2 循环程序例子 127
6.1.3 与循环有关的指令 128
6.2 循环指令 128
6.2.1 LOOP 128
6.2.2 LOOPZ/LOOPE 129
6.2.3 LOOPNZ/LOOPNE 129
6.3 串处理 130
6.3.1 串的概念 130
6.3.2 串处理例子 130
6.3.3 串处理指令 131
6.3.4 串与循环 135
6.4 多重循环 136
6.4.1 多重循环结构 136
6.4.2 排序程序 136
6.5 循环程序举例 137
6.6 实例六 循环之循环 140
6.6.1 循环的执行 140
6.6.2 实验示例 143
6.6.3 实验任务 144
习题六 144
测验六 145
第7章 子程序设计 147
7.1 子程序的概念 147
7.1.1 主程序和子程序 147
7.1.2 一个改造的例子 148
7.2 调用和返回 150
7.2.1 调用指令CALL 150
7.2.2 返回指令RET 151
7.3 过程定义 151
7.3.1 伪指令PROC 151
7.3.2 过程属性 152
7.4 现场保护 152
7.5 子程序参数传递 153
7.5.1 寄存器传参 153
7.5.2 存储单元传参 155
7.5.3 堆栈传参 157
7.6 嵌套与递归 159
7.6.1 子程序嵌套 159
7.6.2 子程序递归 160
7.7 实例七 子程序与模块化 160
7.7.1 模块化结构 160
7.7.2 实验示例 165
7.7.3 实验任务 167
习题七 168
测验七 169
第8章 宏汇编及多模块技术 171
8.1 宏 171
8.1.1 宏定义 171
8.1.2 宏调用 172
8.1.3 宏展开 172
8.1.4 宏与子程序 173
8.1.5 宏的参数 174
8.1.6 宏运算 176
8.2 其他宏功能 177
8.2.1 宏标号 177
8.2.2 宏删除 178
8.2.3 宏嵌套 178
8.2.4 宏库建立与调用 179
8.3 结构伪操作 182
8.4 重复汇编和条件汇编 183
8.4.1 重复汇编 183
8.4.2 条件汇编 184
8.5 多模块结构 184
8.5.1 多个代码段下的模块 184
8.5.2 模块的参数设置 185
8.6 实例八 宏与多模块 185
8.6.1 多模块设计 185
8.6.2 一个段的模块 189
8.6.3 实验示例 192
8.6.4 实验任务 194
习题八 195
测验八 196
第9章 中断程序设计 197
9.1 中断的概念 197
9.1.1 软件中断 197
9.1.2 硬件中断 198
9.1.3 中断类型与中断向量 199
9.1.4 中断过程 200
9.2 定制自己的中断 201
9.2.1 软件中断子程序的编写 201
9.2.2 中断的设置 202
9.2.3 软件中断的触发与处理 202
9.2.4 对除0中断的修改 204
9.3 BIOS中断 207
9.3.1 屏幕及光标控制INT 10H 207
9.3.2 键盘中断INT 16H 212
9.3.3 时钟中断INT 1AH 215
9.4 DOS中断 216
9.4.1 DOS显示功能调用 216
9.4.2 DOS键盘功能调用 217
9.4.3 DOS日期、时间功能调用 218
9.5 实例九 中断程序应用 219
9.5.1 时间与计数 219
9.5.2 实验示例 224
9.5.3 实验任务 227
习题九 227
测验九 229
第10章 综合实验 230
10.1 I/O端口实验 230
10.1.1 I/O端口地址 230
10.1.2 IN指令和OUT指令 231
10.1.3 读取CMOS时钟 232
10.2 随机数实验 233
10.2.1 用CMOS时钟产生随机数 233
10.2.2 用DOS时间功能出算术题 235
10.3 图形动画实验 236
10.3.1 文本模式下的图形动画 237
10.3.2 图形模式下的绘图与动画 240
10.4 磁盘文件读写实验 247
10.4.1 文件操作的DOS系统调用 247
10.4.2 磁盘文件读写示例 249
10.5 综合实验题目 253
10.5.1 实验一 CMOS时间和日期 253
10.5.2 实验二 英文打字练习软件 253
10.5.3 实验三 英文填字游戏软件 254
10.5.4 实验四 设计一个小计算器 254
10.5.5 实验五 小学生算术练习软件 255
10.5.6 实验六 进制及编码转换工具 256
10.5.7 实验七 绘制图形动画 256
10.5.8 实验八 磁盘文件 257
附录A 8086指令系统表 258
附录B 汇编出错提示信息 265
附录C DEBUG的用法 268
附录D 各章测验答案 273
参考文献 274