第一章 C与80X86 1
1.1 简介 1
1.2 8086/88概述 1
1.3 80286的结构及扩充功能 13
1.4 80386扩充的结构要点与功能 21
1.5 Microsoft汇编器 26
1.6 为配合C模块的汇编语言形式 36
第二章 PC DOS概述 40
2.1 简介 40
2.2 DOS的基本组成 40
2.3 可执行文件 56
2.4 语句的考虑(LEXICAL CONSIDERATION) 59
2.5 磁盘系统 62
2.6 子目录 63
2.7 结论 64
第三章 PC DOS下的C编译器 65
3.1 简介 65
3.2 内存模式 65
3.3 语法的考虑 74
3.4 包含文件(include file) 79
3.5 结论 82
第四章 从PC DOS开始 83
4.1 PC DOS错误码 83
4.2 由C调用DOS和ROM BIOS 93
4.3 文件属性 94
4.4 从堆栈中传送实参 96
4.5 从堆栈内取出实参 99
4.6 送回错误码 101
4.7 一个改变文件属性的汇编语言函数 103
4.8 ATTRIB2:一个用来读取和设置文件模式的程序 105
4.9 结论 110
第五章 系统磁盘 111
5.1 简介 111
5.2 磁盘特性 111
5.3 内存的所有权(ownership) 113
5.4 dskparms:一个送回磁盘空间数量的汇编语言程序 116
5.5 在堆栈中实参的次序 116
5.6 将计算过的值加入dskdata结构 121
5.7 结论 123
第六章 时间和日期 127
6.1 简介 127
6.2 磁盘的时间与日期记录 127
6.3 不在磁盘目录内的时间与日期 127
6.4 在磁盘目录函数调用内的时间与日期 128
6.5 文件代码及文件描述符 128
6.6 FILEDATE:一个用来变更文件日期的程序 136
6.7 系统的计时(SYSTEM TIMEKEEPING) 136
6.8 设计date的数据结构 143
6.9 设计时间的数据结构 146
6.10 CHRONTST:一个用来检查Time的程序 148
6.11 结论 150
6.12 建议的程序练习 151
第七章 系统缺省值:磁盘机和路径 152
7.1 简介 152
7.2 缺省的磁盘机 152
7.3 系统缺省值 154
7.4 工作路径(THE CURRENT PATP) 158
7.5 错误返回 158
7.6 getpath:一个用来传回工作路径的函数 160
7.7 函数3B:改变工作路径 160
7.8 在堆栈上分配存储区 163
7.9 结论 166
第八章 PC DOS的目录 167
8.1 简介 167
8.2 目录 167
8.3 DOS函数4E:寻找第一个符合的文件 167
8.4 目录项目 168
8.5 在搜索时文件名的准则 169
8.6 在搜索时属性的准则 170
8.7 磁盘数据传送区 170
8.8 find1st:搜索第一个符合的目录 172
8.8 FIND1:一个用来测试setdta和find1st的程序 173
8.9 find1st在程序应用上的价值 175
8.10 搜索下一个符合的目录项 175
8.11 FIND2:显示所有符合的目录项目 175
8.12 修饰FIND2 176
8.13 getitem:一个包含本章搜索子程序的程序 180
8.14 mov_mem:一个快速的内存拷贝子程序 183
8.15 FIND4:以getitem打印出目录的程序 183
8.16 结论 185
8.17 建议的程序练习 185
第九章 目录登录的进一步应用 188
9.1 简介 188
9.2 贮存item结构 188
9.3 一个指针的数组 191
9.4 在LI中使用指针数组 193
9.5 数组语法的结构 197
9.6 指针及数组索引 198
9.7 采用指针而不用数组索引 199
9.8 使LI更具灵活性 203
9.9 结构指针与数组的排序 208
9.10 结论 216
第十章 最终的目录打印程序:LI 217
10.1 简介 217
10.2 第一部分:扩充getitem 217
10.3 第二部分:增加选择项(OPTIONS) 224
10.4 结论 237
第十一章 键盘和标准输入 250
11.1 简介 250
11.2 键盘 250
11.3 DOS输入函数 255
11.4 结论 276
第十二章 标准和屏幕 277
12.1 简介 277
12.2 DOS和标准的输出 277
12.3 Interrupt 10H:视频I/O简介 283
12.4 结论 305
第十三章 直接视频存取 308
13.1 简介 308
13.2 ROM BIOS:I0H中断 308
13.3 直接视频存取 309
13.4 屏幕内存配置 310
13.5 视频卡 310
13.6 彩色模式的屏幕属性 311
13.7 定义主要的属性 312
13.8 单色卡 314
13.9 视频内存分配 314
13.10 视频配置 315
13.11 结构crt的声明的初设 317
13.12 属性定义 320
13.13 V config:视频配置函数 321
13.14 直接视频输出程序 325
13.15 v fill的测试 330
13.16 v fill结构CRT的“未配置” 331
13.17 直接视频的字符和字串输出函数 334
13.18 v puts:直接字串输出 335
13.19 仅作属性的写入 341
13.20 结论 343
第十四章 高级视频总论 344
14.1 简介 344
14.2 视窗及视框 344
14.3 屏幕的保存与恢复 354
14.4 视框程序库的测试 361
14.5 滚屏(scrolling) 364
14.6 使用彩色绘图卡时的屏幕干扰 370
14.7 扫描线的回扫(retrace) 370
14.8 对于单一符记子程序的改进 371
14.9 结论 383
第十五章 中断(Interrupts) 384
15.1 简介 384
15.2 80X86中断结构 384
15.3 在中断要求后的处理 387
15.4 时钟中断程序 402
15.5 硬件中断 409
15.6 结论 417
第十六章 IPM PC实例程序 418
16.1 汇编语言程序 418
16.2 测试汇编程序 427
16.3 使工具集适合其它编译器和汇编器 432
16.4 swint的支持 436
16.5 访问DOS 437
16.6 键盘输入 441
16.7 VIDEO输出函数 444
16.8 直接屏幕输出 450
16.9 终端仿真程序 457
16.10 处理Cobtrol-Break 473
16.11 处理致命的错误 476
附录A 附带的函数 481
附录B 本书程序与环境的配合 485
附录C 美国国家标准信息交换码(ASCⅡ) 504
附录D C优先顺序表 507
附录E 8086、80286和80386指令集 508