第一篇 基本汇编语言程序 1
第一章 IBM PC 80286数据的表示法 2
1-1 二进制系统 3
1-2 十六进制系统 5
1-3 BCD系统 6
1-4 十进制浮点数据表示法 7
1-5 字母数字码数据表示法 8
第二章 IBM PC 80286的硬件结构 12
2-1 80286CPU的演化 12
2-2 80286的工作模式 13
2-3 80286的内部结构 14
2-4 80286的寄存器 16
2-5 段的概念 20
2-6 堆栈(stack)的概念 21
第三章 编写、汇编、连接以及执行汇编语言的基础知识 23
3-1 汇编语言程序的开发过程 23
3-2 汇编语言指令的格式说明 26
3-3 常用的伪操作指令 27
3-4 伪数据的定义 30
3-5 程序范例的编辑,汇编,连接与执行 33
3-6 80286汇编语言指令汇编时应注意事项 47
第四章 数据的传送 48
4-1 通用的数据传送指令 49
4-2 地址传送指令 56
4-3 标志内容传送指令 58
4-4 输入和输出(I/O)的数据传送指令 59
4-5 寻址模式 59
第五章 简单的四则运算 64
5-1 加法运算 65
5-2 减法运算 72
5-3 乘法运算 79
5-4 除法运算 84
5-5 CBW和CWD符号位扩充指令 88
第六章 分支与循环 91
6-1 无条件的控制转移 92
6-2 条件的控制转移 94
6-3 重复控制运算 99
第七章 位运算指令 109
7-1 逻辑运算指令 110
7-2 移位运算指令 123
7-3 循环运算指令 126
第八章 字串指令的应用 134
8-1 CLD和STD指令 136
8-2 字串传送指令MOVS和REP运算指令 136
8-3 字串比较指令CMPS和REPE,REPNE运算指令 139
8-4 字串查找指令SCAS 142
8-5 字串的装入LODS和储存STOS 143
8-6 字串的输入INS和输出OUTS 147
第九章 子程序和宏调用的应用 149
9-1 同一段内的子程序调用 149
9-2 子程序的连接 154
9-3 宏简介 161
9-4 普通用途的宏伪指令和列表用的宏伪指令 165
9-5 宏操作符 172
9-6 重复运算的伪指令 173
9-7 条件伪指令 174
9-8 建立宏程序库 184
第十章 杂项总结 188
10-1 中断指令 188
10-2 处理器的控制指令 190
10-3 高级指令 192
10-4 保护模式指令 193
10-5 80286和8086/8088汇编语言指令的区别 203
10-6 其他伪指令的说明 203
10-7 EXE和COM文件 214
第二篇 系统资源DOS的剖析与应用 217
第十一章 基本字符的输入与输出 222
11-1 字符输入与输出的基本概念 222
11-2 AH=01H,输入一个字符 223
11-3 AH=02H,输出一个字符 225
11-4 AH=03H,辅助输入(非同步通讯接口板) 227
11-5 AH=04H,辅助输出(非同步通讯接口卡) 228
11-6 AH=05H,输出一个字符到打印机 233
11-7 AH=06H,直接控制台的输入和输出 234
11-8 AH=07H,直接控制台的输入 237
11-9 AH=08H,直接控制台的输入 240
11-10 AH=09H,输出字串 242
11-11 AH=0AH,输入字串 243
11-12 AH=0BH,检查键盘状态 245
11-13 AH=0CH,清除键盘缓冲区之后,等待输入 248
第十二章 日期与时间的管理 257
12-1 时间与日期BIOS功能的基本概念 257
12-2 AH=2AH,日期的取得 258
12-3 AH=2BH,日期的设定 258
12-4 AH=2CH,时间的取得 261
12-5 AH=2DH,时间的设定 261
第十三章 磁盘驱动器目录管理系统 268
13-1 磁盘结构的说明 268
13-2 AH=39H,建立子目录 274
13-3 AH=3AH,删除子目录 276
13-4 AH=3BH,改变当前的工作目录 279
13-5 AH=41H,从目录中删除一个文件 281
13-6 AH=43H,文件属性的获得/设定 283
13-7 AH=47H,取得工作目录的路径 285
13-8 AH=4EH,寻找第一个匹配的文件 288
13-9 AH=4FH,搜寻下一个匹配的文件 288
第十四章 文件的管理——使用文件句柄 292
14-1 文件句柄的基本概念 292
14-2 AH=3CH,建立一个文件句柄 293
14-3 AH=3DH,打开一个文件 294
14-4 AH=3EH,关闭一个文件 295
14-5 AH=3FH,读取一个文件 297
14-6 AH=40H,将数据写入一文件内 298
14-7 AH=42H,移动文件的读写指针 303
14-8 AH=45H,复制一个文件句柄 307
14-9 AH=46H,将一个文件句柄复制到另一个文件句柄内 309
14-10 AH=56H,更改文件名称 312
14-11 AH=57H,文件日期和时间的取得/设定 315
14-12 AH=5AH,建立一个临时文件 318
14-13 AH=5BH,建立一个新文件 321
14-14 AH=5CH,文件的上锁(lock)/解锁(unlock) 323
第十五章 磁盘驱动器的管理 325
15-1 AH=0DH,磁盘的复位 325
15-2 AH=0EH,驱动器的选择 326
15-3 AH=19H,取得当前工作驱动器的代码 327
15-4 AH=1BH,取得缺省驱动器的有关数据 329
15-5 AH=1CH,取得指定驱动器的有关数据 330
15-6 AH=36H,取得磁盘剩余空间 334
第十六章 内存的管理 338
16-1 DOS内存管理的基本概念 338
16-2 AH=48H,内存的分配 339
16-3 AH=49H,释放已分配的内存 339
16-4 AH=4AH,更改分配内存的大小 340
第十七章 进程的管理 346
17-1 DOS进程管理的基本概念 346
17-2 AH=31H,程序结束,但此程序仍驻留在内存 347
17-3 AH=4BH(AL=00),程序的执行 350
17-4 AH=4BH(AL=03),程序的装入 351
17-5 AH=4CH,程序的结束 352
17-6 AH=4DH,从子进程取出返回的值 355
17-7 AH=62H,取得程序PSP的地址 355
第十八章 设备的管理 358
18-1 AH=44H(AL=00/01),取得或设定外设的输入/输出控制数据(IOCTL) 358
18-2 AH=44H(AL=02/03),IOCTL间字符数据的传送 361
18-3 AH=44H(AL=04/05),IOCTL间,块数据的传送 362
18-4 AH=44H(AL=06/07),检查输入/输出状态 363
18-5 AH=44H(AL=08),检查磁盘是固定或可移动媒介 364
18-6 AH=44H(AL=09),检查工作驱动器是本地(local)或远程的(remote) 366
18-7 AH=44H(AL=0AH),检查工作文件是本地或远程性的 367
18-8 AH=44H(AL=0BH),重新设定重试(retry)次数 367
18-9 AH=5EH(AL=00H),取得本地终端机名称 369
18-10 AH=5EH(AL=02),设定打印机句柄 370
18-11 AH=5FH(AL=02),取重新定向表 371
18-12 AH=5FH(AL=03),设备的重新定向 371
18-13 AH=5FH(AL=04H),取消设备重新定向 372
第十九章 DOS 21H其他资源的管理 374
19-1 AH=00H,程序的结束 374
19-2 AH=1AH,设置磁盘数据传送地址 375
19-3 AH=25H,设置中断向量 375
19-4 AH=2EH,重置/设定检验开关 378
19-5 AH=2FH,取磁盘传送地址 378
19-6 AH=30H,取DOS版本号 379
19-7 AH=33H,CTRL_C的取得/设定 381
19-8 AH=35H,取中断处理例程地址 383
19-9 AH=38H,国家信息的取得/设定 386
19-10 AH=54H,取检验标志 388
第二十章 文件的管理——使用文件控制块 390
20-1 文件控制块的基本概念 390
20-2 AH=0FH,打开文件 393
20-3 AH=10H,关闭文件 393
20-4 AH=11H,查找第一个匹配的文件 394
20-5 AH=12H,查找下一个相匹配的文件 395
20-6 AH=13H,文件的删除 395
20-7 AH=14H,顺序读文件 397
20-8 AH=15H,顺序写文件 399
20-9 AH=16H,建立一个新的文件 400
20-10 AH=17H,更改文件名称 405
20-11 AH=21H,随机读取文件 407
20-12 AH=22H,随机写入文件 409
20-13 AH=23H,取文件大小 410
20-14 AH=24H,设置相对记录栏位 412
20-15 AH=26H,建立新的PSP 413
20-16 AH=27H,随机块数据的读取 413
20-17 AH=28H,随机块数据的写入 414
20-18 AH=29H,文件名称的分析 415
第二十一章 其它DOS中断的说明 421
21-1 INT 20H,程序的中止 421
21-2 INT 22H,程序结束地址 421
21-3 INT 23H,CTRL-C中断处理例程地址 422
21-4 INT 24H,严重错误中断处理例程地址 422
21-5 INT 25H,绝对磁盘的读取 422
21-6 INT 26H,绝对磁盘的写入 423
21-7 INT 27H,程序结束,但仍驻留内存 429
第三篇 声音和系统资源BIOS的剖析与应用 438
第二十二章 声音的产生 439
22-1 直接喇叭控制 439
22-2 利用计时器发出声音 444
第二十三章 文本模式的屏幕处理 452
23-1 INT 10H,黑白文本屏幕的用法 453
23-2 文本模式INT 10H的应用 457
23-3 游戏的制作 464
第二十四章 屏幕绘图 495
24-1 单色图形卡 496
24-2 彩色图形卡 499
24-3 Hercules卡 507
24-4 INT 10H图形模式 514
第二十五章 键盘的BIOS服务例程 519
25-1 AH=00H,读取键盘的下一个字符 519
25-2 AH=01H,测试字符是否已准备好 524
25-3 AH=02H,取得当前特殊键的状态 526
第二十六章 打印机的BIOS服务例程 529
26-1 AH=00H,打印一个字符 529
26-2 AH=01H,初始化打印机口 529
26-3 AH=02H,读打印机的状态 529
第二十七章 磁盘的BIOS服务例程 533
27-1 AH=00H,重启动磁盘系统 533
27-2 AH=01H,读取当前磁盘状态 533
27-3 AH=02H,读取特定扇区数据 534
27-4 AH=03H,将数据写入指定扇区内 541
27-5 AH=04H,验证扇区 547
27-6 AH=05H,FORMAT盘 547
27-7 硬盘驱动器的功能例程 550
第二十八章 时间与日期的BIOS服务例程 554
28-1 AH=00H,取得目前的时间计数 554
28-2 AH=01H,设定当前的脉冲计数 554
28-3 AH=02H,读取系统时间 555
28-4 AH=03H,设定系统时间 555
28-5 AH=04H,读取系统日期 555
28-6 AH=05H,设定系统日期 556
28-7 AH=06H,设定系统闹钟 556
28-8 AH=07H,复位系统闹钟 556
第二十九章 其它BIOS的功能说明 558
29-1 INT 0H,除数为零 558
29-2 INT 1H,单步执行 559
29-3 INT 2H,不可屏敝中断 559
29-4 INT 3H,中断 559
29-5 INT 4H,溢出 559
29-6 INT 5H,打印屏幕功能 559
29-7 INT 8H,系统时间 560
29-8 INT 9H,键盘中断 560
29-9 INT 0DH,硬盘驱动器 560
29-10 INT 0EH,软盘驱动器 560
29-11 INT 11H,设备检查 560
29-12 INT 12H,内存容量的检查 562
29-13 INT 14H,RS-232异步通信服务例程 563
29-14 INT 15H,磁带I/O 565
29-15 INT 18H,ROM BASIC 565
29-16 INT 19H,重新启动计算机 565
29-17 INT 1BH,键盘中断时取得控制 565
29-18 INT 1CH,计时器滴答中断 565
29-19 INT 1DH,影像参数表格 565
29-20 INT 1EH,磁盘参数地址 565
29-21 INT 1FH,图形字符的定义地址 565
附录A IBM PC ASCII字符集 566
附录B 保留字 567