引言 1
第一章 从8086 到80486 1
1.1 8086 以前的时代 1
1.2 8086 2
1.2.1 微型计算机的组成 2
1.2.2 8086 成功的奥秘 3
1.2.3 8086 的存储器结构 4
1.2.4 存储器的分段 6
1.2.5 8086 的其它寄存器 10
1.3.1 8086 的改进型80186 11
1.3 80186 和80286 11
1.3.2 第四代微处理器的先驱:80286 12
1.4 成熟的第四代微处理器:80386 12
1.4.1 80386 的体系结构 13
1.4.2 80386 的寄存器结构 14
1.5 最先进的第四代微处理器——80486 22
第二章 DOS1.0 到DOS 6.0 24
2.1 历史的回顾 24
2.2 DOS 的优越性 25
2.3 DOS 的组成部分 26
2.3.4 将官:COMMAND .COM 27
2.3.3 校官:MSDOS.SYS 27
2.3.1 士兵:ROM (Read Only Memory:只读存储器) 27
2.3.2 尉官:IO.SYS 27
2.3.5 代理将官:用户程序 28
2.3.6 总统:操作人员 28
2.4 新一代的DOS:DOS 5.0 和DOS 6.0 28
2.4.1 DOS 5.0 28
2.4.2 内存简介 29
第三章 简单的汇编语言程序设计 33
3.1 为什么要用汇编写程序 33
3.3 编写第一个程序 34
3.3.1 用“A”命令建立程序 34
3.2 DEBUG 与汇编程序 34
3.4 最常用的汇编语言指令 36
3.4.1 MOV 指令 36
3.4.2 INT 指令 37
3.5 活学活用 39
3.5.1 打印不同的字符 39
3.5.2 JMP 指令和INC 指令 40
3.6 存盘保存和再装入 42
3.6.1 存盘保存 42
3.6.2 重新装入 43
3.6.3 小结与思考 43
4.1 引言 44
第四章 掌握ROM BIOS 44
4.2 文本方式和图形方式 45
4.3 文本方式的原理 47
4.3.1 基本原理 47
4.3.2 编程显示 49
4.3.3 用debug 在屏幕上写字 56
4.3.4 文本方式的进一步原理 57
4.3.5 控制机器发出声音 61
4.3.6 其它有用的INT 10H 的BIOS 调用 64
4.4 图形方式的原理 66
4.4.1 图形方式的原理 67
4.4.2 两个程序 70
4.5 键盘的奇特功能 77
4.5.1 键盘的基本操作原理 77
4.5.2 关于键盘的BIOS 功能调用 79
4.6 磁盘的知识 86
4.6.1 磁盘的基本概念 86
4.6.1.1 5.25 英寸软盘 86
4.6.1.2 3.5 英寸软盘 87
4.6.1.3 硬盘 87
4.6.2 磁盘的物理存储结构 87
4.6.3.1 逻辑扇区 89
4.6.3 磁盘的逻辑存储结构——DOS 是如何管理磁盘的 89
4.6.3.2 DOS 磁盘的结构 90
4.6.4 BIOS 的磁盘服务功能 92
4.7 ROM BIOS 功能调用纵览 93
4.7.1 INT 05H 93
4.7.2 INT 10H 94
4.7.3 INT 11H 94
4.7.4 INT 12H 94
4.7.5 INT 13H 94
4.7.6 INT 14H 94
4.7.9 INT 17H 97
4.7.7 INT 15H 97
4.7.8 INT 16H 97
4.7.10 INT 18H 98
4.7.11 INT 19H 98
4.7.12 INT 1AH 98
4.7.13 INT 1BH 99
4.7.14 INT 1CH 99
4.7.15 INT 1EH 100
4.7.16 INT 1FH 100
4.7.17 INT 41H 和INT 46H 100
5.1.1 十一种寻址方式 101
第五章 80386/80486 101
5.1 寻址方式 101
5.1.2 怎么记 106
5.2 数据传送指令 107
5.2.1 一般的数据传送指令 107
5.2.2 地址传送指令 110
5.2.3 堆栈操作指令 112
5.2.4 类型转换指令 113
5.2.5 输入/输出指令 113
5.3 算术运算指令 114
5.3.1 二进制运算指令 114
5.3.2 十进制运算指令 117
5.4 逻辑指令 120
5.4.1 逻辑运算指令 121
5.4.2 逻辑移位指令 121
5.5 串操作指令 125
5.5.1 基本串操作指令 125
5.5.2 复合串操作指令 126
5.6 条件转移指令 128
5.7 标志操作和测试指令 131
5.7.1 直接设置某些标志位的指令 131
5.7.2 测试某些标志位的情况来设置字节的指令 132
5.8 位操作指令 133
5.7.3 和累加器相互传送的指令 133
5.10 用于保护模式的指令 135
5.11 其他类型指令 135
5.9 多段类指令 135
第六章 MASM 汇编程序介绍 138
6.1 汇编程序具体做什么 138
6.1.1 源程序、目标程序、可执行程序 138
6.1.2 COM 与EXE 文件的不同 139
6.2 第一个汇编程序 140
6.2.1 建立ASM 文件 140
6.2.2 用MASM 产生OBJ 文件 141
6.2.4 运行程序 143
6.2.3 用LINK 产生EXE 文件 143
6.3 第二个汇编程序 144
6.3.1 第二个汇编程序 144
6.3.2 程序的解释 145
6.3.3 跟踪指令的执行 147
6.3.4 列表文件、交叉引用文件、映象文件 150
6.4 汇编语言程序中的段的规划 153
6.4.1 一个段的程序规划 153
6.4.2 两个段的程序规划 154
6.4.4 四个段的程序规划 155
6.4.3 三个段的程序规划 155
6.4.5 一些说明 156
6.5 MASM 版本及伪指令简介 157
6.5.1 MASM 版本介绍 157
6.5.2 常用的伪指令 157
6.6 宏指令 169
6.6.1 宏指令 169
6.6.2 其他类似宏指令的伪指令 173
6.7 子程序 175
6.7.1 子程序的结构及调用原理 176
6.7.2 JMP、INT 及IRET 指令 179
6.7.3 子程序设计举例 182
6.7.4 宏指令和子程序的区别 185
第七章 开拓疆土——应用程序设计 187
7.1 DOS 系统功能调用 187
7.2 数制转换 190
7.3 算术运算 200
7.3.1 多字节乘法 200
7.3.2 多字节除法 203
7.3.3 浮点数运算 204
7.4 图形处理与库 205
7.4.1 宏的例子 205
7.3.4 BCD 码的算术运算 205
7.4.2 宏程序库 209
7.4.3 子程序库 210
7.4.4 宏程序库和子程序库的区别 213
7.5 文件管理 213
7.5.1 建立文件 214
7.5.2 删除文件 215
7.5.3 打开文件 217
7.5.4 关闭文件 220
7.5.5 读写文件 220
7.5.7 其他有关的功能调用 225
7.5.6 移动文件指针 225
7.6 较高级的程序设计技法介绍 227
7.6.1 音乐程序 227
7.6.2 画线程序 230
7.6.2.1 画线程序介绍 230
7.6.2.2 Bresenham 算法 230
7.6.2.3 DRAWLINE 程序 231
7.6.2.4 一般化 232
7.6.3 菜单驱动程序的简单思路 233
7.6.4 修改中断向量 233
思考题 236