序 1
前言 1
第一章 中央处理器和指令系统 1
1.1 中央处理器 1
1.1.1 8088CPU内部结构 1
目录 1
1.1.2 CPU可访空间结构 5
1.1.3 8088、8086、80286的不同 7
1.2.1 数据类型及存储方式 10
1.2 内存寻址 10
1.2.2 指令格式及存储方式 17
1.2.3 寻址方式 18
1.3 指令系统 22
1.3.1 8086/8088指令系统的分类 22
1.3.2 指令使用30例 31
1.3.3 80286增加的指令 49
习题 51
2.1 伪指令和伪操作符的分类 54
2.1.1 名字 54
第二章 宏汇编程序的伪指令 54
2.1.2 伪指令分类 55
2.1.3 伪操作符分类及优先权 55
2.2 变量、标号和过程 57
2.2.1 变量、标号、过程的定义及属性 58
2.2.2 EQU和LABEL伪指令 62
2.2.3 ORG伪指令和THIS伪操作符 64
2.3 模块结构和多模块的连接 65
2.3.1 模块的定界和命名 66
2.3.2 模块的分段结构 67
2.3.3 多模块的连接 72
2.4 结构与记录 77
2.4.1 结构 77
2.4.2 记录 78
2.5 宏代换简介 81
2.5.1 宏的定义及引用 81
2.5.2 带参数的宏 83
2.5.3 宏定义中的标号、变量名 85
习题二 85
3.1.1 翻译过程概述 88
第三章 汇编语言程序上机操作 88
3.1 程序的编辑、汇编和连接 88
3.1.2 行编辑程序EDLIN.COM 89
3.1.3 宏汇编程序MASM.EXE 92
3.1.4 连接程序LINK.EXE 95
3.2 程序的加载 97
3.2.1 程序段前缀 97
3.2.2 .EXE文件 99
3.2.3 .COM文件 102
3.3.1 程序〔例1〕——询问并显示名字程序 105
3.3 编程举例 105
3.3.2 程序〔例2〕——信息检索程序 107
3.3.3 程序〔例3〕——从无序表中删除1个元素的子程序 109
3.3.4 程序〔例4〕——十六进制数转换为十进制数程序 110
3.4 程序的调试 112
3.4.1 调试程序DEBUG.COM 112
3.4.2 程序〔例5〕——大小写字母相互转换程序 115
习题三 118
4.1 概述 120
第四章 系统层次结构 120
4.2 系统的中断机制 121
4.2.1 中断类型和中断向量表 121
4.2.2 Intel保留的0~4型中断 122
4.2.3 硬件可屏中断管理 123
4.3 系统硬件配制概况 126
4.3.1 内存配置 126
4.3.2 外设配置 128
4.3.3 端口地址 130
4.4.1 ROM-BIOS的功能 131
4.4 基本输入输出系统 131
4.4.2 ROM-BIOS的中断分类 132
4.4.3 PC、XT、AT的ROM-BIOS中断比较 133
4.5 PC-DOS操作系统 136
4.5.1 PC-DOS的内存映像 136
4.5.2 PC-DOS的中断分类 138
4.5.3 系统功能(INT 21H)分类 140
第五章 使用DOS和BIOS的字符设备I/O功能 143
5.1 使用DOS的传统I/O方式系统功能 143
5.1.1 概述 143
5.1.2 程序〔例6〕——从键盘输入字符串 144
5.1.3 程序〔例7〕——冒泡法对键入字符串排序 145
5.2 使用BIOS的键盘I/O服务——INT 16H 147
5.2.1 概述 147
5.2.2 程序〔例8〕——查看键代码的命令程序 152
5.3 使用BIOS的显示I/O服务——INT 10H 154
5.3.1 概述 154
5.3.2 程序〔例9〕——清屏三法 161
5.3.3 程序〔例10〕——显示一个标题 162
5.3.4 程序〔例11〕——画一个三角形 164
5.4.1 概述 166
5.4 使用BIOS的打印I/O服务——INT 17H 166
5.4.2 程序〔例12〕——将键入字符串送往打印机 168
5.4.3 程序〔例13〕——打印“汉”字点阵图形 170
第六章 使用DOS和BIOS的定时与发声功能 173
6.1 使用DOS的取/置日期、时间系统功能 173
6.1.1 概述 173
6.1.2 程序〔例14〕——延迟较长时间的子程序 174
6.2 使用BIOS的日历钟服务——INT 1AH 177
6.2.1 概述 177
6.2.2 程序〔例15〕——产生一个随机数 179
6.2.3 程序〔例16〕——沿斜线移动笑脸符 181
6.2.4 程序〔例17〕——屏显数字钟 182
6.3 使用BIOS的发声功能 185
6.3.1 概述 185
6.3.2 程序〔例18〕——“社会主义好”音响程序 186
6.3.3 程序〔例19〕——定时报警程序(AT机) 189
第七章 使用DOS的文件管理系统功能 192
7.1 使用FCB式文件读写的系统功能 192
7.1.1 概述 192
7.1.2 程序〔例20〕——按页显示文本文件 194
7.1.3 程序〔例21〕——DEL命令的改进程序 197
7.2 使用句柄式文件/设备读写的系统功能 199
7.2.1 概述 199
7.2.2 程序〔例22〕——拷贝文件的简易程序 201
7.2.3 程序〔例23〕——TYPE命令的模拟程序 204
7.3 使用文件目录管理的系统功能 206
7.3.1 概述 206
7.3.2 程序〔例24〕——显示隐含文件的程序 209
7.3.3 程序〔例25〕——修改文件属性的菜单式程序 211
8.1.1 概述 217
第八章 使用BIOS的磁盘、串行I/O功能和扩充BIOS 217
8.1 使用BIOS的磁盘I/O服务——INT 13H 217
8.1.2 程序〔例26〕——格式化磁道与加密 220
8.1.3 程序〔例27〕——清除磁盘大麻病毒 222
8.2 使用BIOS的串行I/O服务——INT 14H 224
8.2.1 概述 224
8.2.2 程序〔例28〕——后台传送文件:主机发送 227
8.2.3 程序〔例29〕——后台传送文件:从机接收 229
8.3.1 概述 233
8.3 扩充BIOS中断功能 233
8.3.2 程序〔例30〕——扩充INT 16H给键盘加锁 234
8.3.3 程序〔例31〕——扩充INT 17H用于绘图仪 238
8.3.4 程序〔例32〕——扩充INT 13H截获扇区索引 241
第九章 高级语言调用汇编子程序 244
9.1 概述 244
9.1.1 连接以及控制权转让 244
9.1.2 参数传递 245
9.2 FORTRAN与汇编语言的接口 246
9.2.1 IBM FORTRAN调用汇编子程序的一般规则 246
9.2.2 程序〔例33〕——FORTRAN数据通信功能的扩充 247
9.2.3 程序〔例34〕——使用公共数据区直接传送参数 249
9.3 PASCAL与汇编语言的接口 251
9.3.1 MS PASCAL调用汇编子程序的一般规则 252
9.3.2 程序〔例35〕——MS PASCAL调用音响子程序 254
9.3.3 TURBO PASCAL近程调用汇编子程序 256
9.4 dBASEⅢ与汇编语言的接口 258
9.4.1 dBASEⅢ的内存变量 258
9.4.2 程序〔例36〕——使用内存变量传递参数 261
9.4.3 dBASEⅢplus的CALL命令 264
9.4.4 程序〔例37〕——使用CALL命令实现横排序 265
9.5 BASIC与汇编语言的接口 267
9.5.1 编译BASIC调用汇编子程序 267
9.5.2 程序〔例38〕——解释BASIC使用POKE装入代码程序 269
9.5.3 程序〔例39〕——解释BASIC使用BLOAD装入代码程序 272
9.5.4 程序〔例40〕——解释BASIC调用汇编子程序的简便方法 274
附录Ⅰ 习题解答 277
附录Ⅱ 8086指令集 284
附录Ⅲ BIOS软件中断 304
附录Ⅳ PC-DOS(3.10版)系统功能(INT 21H) 313