第0章 计算机数制速成 1
0.1 二进制 1
八位组成一个字节 2
二进制加法 2
正负符号 3
补码 4
0.2 十六进制 5
十六进制的使用 6
练习 6
第一章 导言 7
1.1 什么是汇编语言 7
1.2 80286的发展过程 7
1.3 80286微处理器概观 8
操作方式 8
内部寄存器 9
段的种类 9
软件性能 10
输入输出空间 11
内存分配 11
中断 11
数据和地址总线 12
1.4 内部寄存器 12
数据寄存器 13
段寄存器 13
指针和索引寄存器 13
内部单元 14
指令指针 15
标志 15
练习 16
第二章 使用汇编器 17
2.1 介绍 17
宏汇编软件包 17
2.2 开发汇编语言程序 17
编辑器 18
汇编器 18
链接器 18
一个查错程序(DEBUG) 18
自顶向下的程序设计 19
2.3 源语句 19
源语句中的常数 20
2.4 汇编语言指令 20
标号域 20
助记符域 21
操作数域 21
注释域 21
2.5 伪操作 22
数据伪操作 22
列表伪操作 30
方式伪操作 31
2.6 操作 31
算术操作 33
逻辑操作 34
关系操作 35
属性操作 36
2.7 编辑、汇编和运行程序 37
做一个工作汇编盘 37
程序举例 38
输入程序 38
汇编程序 42
列出源程序清单 42
运行程序 44
高级列表选择 48
2.8 构造程序的范例 49
主程序模块 49
二级模块 50
使用模块 51
2.9 命令文件 51
建立CO M的规则 51
建立COM文件 53
COM程序范例 54
COM文件的优缺点 55
2.10 高级伪操作 55
数据伪操作 55
条件伪操作 57
列表伪操作 60
2.11 要点总结 61
练习 62
第三章 80286指令集 64
3.1 寻址方式 64
寄存器和立即数寻址 65
3.2 指令类型 69
3.3 数据传送指令 74
输入输出指令 79
地址传送指令 79
标志传送指令 80
3.4 算术指令 81
数据格式 81
如何在内存存贮数据 82
加法指令 82
减法指令 85
乘法指令 88
除法指令 89
符号扩展指令 90
3.5 位操作指令 91
逻辑指令 93
移位和循环指令 94
3.6 控制转移指令 97
无条件转移指令 98
条件转移指令 102
LOOP指令 105
3.7 串指令 106
方向指令 107
重复前缀 108
传送串指令 108
更改段的分配 110
比较串指令 110
扫描串指令 112
装入和存贮串指令 112
输入和输出串指令 113
3.8 中断指令 114
3.9 处理器控制指令 116
标志操作 116
外部同步指令 117
空操作指令 117
3.10 高级指令 117
3.11 保护方式指令 118
3.12 重点小结 119
80286和8086/8088的差别 121
练习 121
第四章 高精度算术运算 124
4.1 乘法 124
无符号32位×32位乘法 124
带符号32位×32位乘法 127
4.2 除法 129
溢出处理 130
4.3 平方根 132
练习 134
第五章 对数据结构的操作 136
5.1 无序表 136
向无序表增加一个元素 136
从无序表中删除一个元素 138
在无序表中求最大和最小值 140
5.2 给无序的数据排序 141
气泡排序 141
5.3 有序表 146
查找有序表 146
向有序表中加一个元素 150
从有序表中删除一个元素 152
5.4 查寻表 153
查寻表能够代替方程 154
查寻表能够实现代码变换 158
跳转表 158
5.5 文本文件 160
练习 163
第六章 使用系统资源 164
6.1 系统存贮器 164
中断分配 165
6.2 BIOS中断 166
BIOS列表一览 168
80286中断向量 168
8259中断向量 169
BIOS入口点 170
用户支持程序 173
数据表指针 174
6.3 DOS中断 175
类型21功能调用 176
DOS错误信息程序 180
6.4 时间和日期操作 183
BIOS类型1A(日内时间)中断 183
用于时间和日期的DOS功能调用 186
练习 191
第七章 显示操作 192
7.1 显示方式 192
单色适配器 192
彩色/图形适配器 192
7.2 PCAT怎样显示字符 192
字符编码 192
属性 193
存贮映射 195
7.3 显示中断 196
BIOS类型10(显示)中断 196
用于显示的DOS功能调用 202
7.4 简单的文本模式图形 202
对角线 203
7.5 动画的基础 204
旧的移动“笑脸”的技巧 204
7.6 形状表 206
一般化的显示过程 207
推动者与塑造者 208
练习 212
第八章 键盘操作 213
8.1 ASCII 213
ASCII码表 213
扩展ASCII 215
8.2 键盘是如何工作的 215
8.3 键盘中断 219
BOS类型16(键盘)中断 219
关于键盘的DOS功能调用 220
屏幕提示 223
8.4 ASCII码与二进制数之间的转换 224
将ASCII码字符串转换成二进制码 225
将二进制数转换成ASCII字符串 231
练习 232
第九章 让计算机发出声音 233
9.1 扬声器是如何工作的 233
9.2 给扬声器编程 233
BIOS的“BEEP”过程 233
一个通用的声音发生器 234
9.3 产生音乐 235
演奏音乐的过程 237
用键盘演奏音乐 240
9.4 用声音来报警 243
第十章 宏 248
10.1 宏的介绍 248
宏和过程的比较 248
宏可加快编程的速度 248
宏的内容 249
10.2 宏的伪操作指令 250
通用的伪指令 251
重复伪指令 252
条件伪指令 253
列表伪指令 255
10.3 宏操作数 255
10.4 在源程序中定义宏指令 256
10.5 宏指令库 258
建立一个宏指令库 258
将宏指令库读入程序中 258
宏指令的描述 259
宏定义 267
第十一章 目标库 285
11.1 建立目标库 285
11.2 关于目标库的操作 285
11.3 使用目标库 286
第十二章 结构化编程 287
12.1 结构化语句和逻辑流结构 287
逻辑流结构的条件 288
12.2 IF结构 289
ELSE选择项 289
IF结构是如何工作的 290
操作数中的可选项 290
12.3 DO结构 292
DO UNTIL 292
DO WHILE 293
DO COMPLEX 294
选择项 294
12.4 SEARCH结构 295
SEARCH UNTIL 296
SEARCH WHILE 297
SEARCH COMPLEX 298
选择项 298
12.5 使用NCXZ和CXZ的限制 298
12.6 准备结构化的程序 299
过程 299
使用SALUT 300
SALUT如何对源程序进行格式化 301
第十三章 80287数学协处理器 302
13.1 内部寄存器 302
13.2 数据类型 303
13.3 指令集 304
13.4 用宏汇编来对80287进行编程 306
数据定义伪指令 307
检查80287 307
13.5 小结 309
练习答案 310
磁盘用户指南 322
附录A 十六进制/十进制转换表 324
附录B IBM PC显示字符集 325
附录C 80286指令执行时间 326
附录D 80286指令集小结 332
附录E 一些有用的中断 336