第一章 IBM PC宏汇编语言的功能和特性 1
1·1 编写程序的方法 1
1·1·1 编写程序的步骤 1
1·1·2 宏汇编程序(MASM)的启动方法 1
1·1·3 链接浮动目标模块的必要性 3
1·1·4 宏汇编程序在使用上的困难 4
1·1·5 引入叚管理用的伪操作 4
1·1·6 启动DEBUG程序 6
1·2 名字的属性 7
1·2·1 Z-80汇编语言的特性 7
1·2·2 对3种不同名字的引用方法 9
第二章 对单一目标模块的操作方法 11
2·1 源程序的一般形式 11
2·1·1 注释及符号 11
2·1·2 逻辑叚的管理 12
2·2 对单一目标文件的操作方法 17
2·2·1 汇编时应答文件的指定 17
2·2·2 链接时的应答文件 18
2·2·3 用DEBUG程序的跟踪调试 20
第三章 SEGMENT伪指令和ASSUME伪指令的功能 25
3·1 SEGMENT伪指令和ASSUME伪指令的功能 25
3·1·1 SEGMENT的使用方法 25
3·1·2 ASSUME的使用方法 27
3·1·3 ASSUME伪指令在程序中的位置 28
3·2 SEGMENT伪指令的功能和逻辑段的设置 29
3·2·1 在不同的逻辑叚中进行相同处理的程序 29
3·2·2 SEGMENT和ASSUME的关系 34
3·3 程序的入口和出口 34
3·3·1 DS寄存器的初始化 35
3·3·2 数据叚的基地址的确定方法 36
3·3·3 程序例子的执行 36
3·3·4 由DOS结束程序的方法 37
3·4 在PC-DOS下对程序进行调试的方法 40
第四章 内部子程序和外部子程序的编写方法 43
4·1 内部子程序的编写方法 43
4·1·1 PROC_1的构成 44
4·1·2 PROC伪指令的使用方法 45
4·1·3 PROC的功用 46
4·1·4 <程序名>类型的定义 47
4·2 外部子程序的编写方法 49
4·2·1 没有主程序的程序 52
4·2·2 用来对外部可引用的名字进行说明的PUBLIC 58
4·2·3 利用位于外部程序中的子程序的方法 58
4·2·4 链接多个目标文件的方法 59
4·3 使用外部子程序时应注意的几点 61
4·3·1 EXTRN伪指令的位置 61
4·3·2 位于叚内和叚外的标号同代码生成的关系 66
4·3·3 EXTRN设置在SEGMENT外部时NEAR类型成立的条件 68
4·3·4 对于EXTRN伪指令的位置应当注意的几点 68
第五章 库管理程序LIB的功能 75
5·1 库管理程序的模块编辑功能 75
5·1·1 库管理的功能 75
5·1·2 库的索引文件 78
5·1·3 链接指定的库文件 78
5·1·4 模块的链接方法 78
5·2 对库文件进行前方引用的处理 81
5·2·1 用外部子程序建立库文件 82
5·2·2 在库文件中不能进行前方引用 82
5·2·3 对库文件进行前方引用的条件 83
第六章 宏指令的用法 85
6·1 宏指令的基本功能 85
6·1·1 程序的通用化 85
6·1·2 宏指令和子程序的比较 91
6·2 宏参数和宏运算符的使用方法 92
6·2·1 使用宏指令提高了语言的描述能力 92
6·2·2 宏指令加入参数的功能 95
6·2·3 宏运算符&和参数的代入 96
6·2·4 宏运算符% 96
6·2·5 定义局部名字的LOCAL伪指令 98
6·2·6 宏运算符;; 99
6·3 宏指令的库化 100
6·3·1 INCLUDE伪指令的作用方法 100
6·3·2 控制对汇编列表文件的输出 105
第七章 宏汇编语言的存储器管理和数据结构 109
7·1 宏汇编语言的存储器管理 109
7·1·1 SEGMENT的选择项Align 109
7·1·2 SEGMENT的选择项Combine 115
7·1·3 SEGMENT的选择项Class 127
7·1·4 Group的使用方法 130
7·2 数据结构 134
7·2·1 结构(Structure)的用法 134
7·2·2 记录(Record)的用法 141
第八章 应用程序举例 148
8·1 一般的应用程序 148
8·1·1 数据块传送程序 148
8·1·2 查找字符串程序 150
8·13 中断处理程序 152
8·1·4 参数的传送 154
8·2 外围设备驱动(控制)程序 160
8·2·1 自行设计的键盘解释程序 160
8·2·2 单色显示器的驱动程序 164
8·2·3 彩色显示器的驱动程序 169
8·2·4 打印机的驱动程序 174
8·2·5 异步通信适配器的驱动程序 176
8·2·6 读取磁盘上文件目录的驱动程序 180