第一章 绪言 1
第二章 C语言与低、高级语言的接口 3
2.1 C语言混合编程基础 3
2.1.1 混合编程概述 3
2.1.2 C语言的编译模式 4
2.1.3 C语言外部接口约定原则 7
2.2 C语言与汇编语言程序接口 7
2.2.1 C编译程序的调用约定 7
2.2.2 两种参数传递方式 9
2.2.3 汇编子程序的编写格式与要求 10
2.2.4 从C中调用汇编函数 13
2.2.5 建立汇编语言框架 20
2.2.6 从汇编程序中调用C语言函数 25
2.2.7 C语言与汇编语言程序混合调用实例 28
2.3 C语言与PASCAL语言程序接口 34
2.3.1 PASCAL语言简介 34
2.3.2 C与PASCAL的接口程序设计基础 34
2.3.3 C与PASCAL的调用约定 36
2.3.4 C与PASCAL的接口程序设计举例 36
2.3.5 连接C和PASCAL模块 37
2.4 C语言与PROLOG语言程序接口 38
2.4.1 PROLOG语言简介 38
2.4.2 PROLOG混合编程基础 38
2.4.3 C与PROLOG的混合编程规则 40
2.4.4 C与PROLOG混合编程举例 40
2.4.5 连接C和PROLOG模块 41
2.5 C语言与BASIC语言程序接口 42
2.5.1 BASIC语言混合编程基础 42
2.5.2 BASIC调用C 43
2.5.3 C调用BASIC 44
第三章 C语言与DOS操作系统的接口 46
3.1 伪变量 46
3.1.1 伪变量的引入 46
3.1.2 伪变量的使用 47
3.1.3 伪变量应用举例 47
3.2 直接插入汇编代码 49
3.2.1 关键词asm或_asm 49
3.2.2 asm和_asm的指令集 51
3.2.3 汇编代码对C代码的引用 53
3.2.5 程序举例 56
3.2.4 编译过程 56
3.3.1 C语言中提供的函数 57
3.3 C与BIOS接口 57
3.3.2 C语言对ROM BIOS显示驱动服务的调用 59
3.3.3 C语言对ROM BIOS磁盘服务的调用 64
3.3.4 C语言对ROM BIOS键盘服务的调用 66
3.4 C与DOS接口 68
3.4.1 C语言中提供的函数 68
3.4.2 C语言对DOS功能服务的调用 70
4.1.1 概述 73
4.1.2 抢占式接管和链接式接管 73
第四章 用C写TSR程序 73
4.1 TSR的一般讨论 73
4.1.3 TSR编程应考虑的问题 74
4.2 与TSR相关的DOS功能调用和中断 76
4.2.1 DOS功能调用 76
4.2.2 与TSR相关的中断 79
4.3 用C实现TSR 80
4.3.1 中断函数 80
4.3.2 激活TSR的外部条件 82
4.3.3 激活TSR的内部条件 83
4.3.4 栈切换 84
4.3.5 保护DOS数据区 85
4.3.6 PSP和DTA的切换 86
4.3.7 TSR的应用部分 87
4.3.8 TSR的撤离 88
4.3.9 TSR的通信 89
4.3.10 TSR的调试 90
4.3.11 确定TSR占用的内存 90
5.2 DOS对设备驱动程序的管理和请求 92
5.2.1 设备驱动程序在DOS中的层次 92
第五章 用C写设备驱动程序 92
5.1 概述 92
5.2.2 DOS管理设备驱动程序的数据结构 93
5.2.3 设备驱动程序的分类 93
5.2.4 DOS对设备的请求 94
5.2.5 DOS对设备驱动程序的调用 96
5.3 设备驱动程序的C描述 100
5.3.1 各种主要变量 100
5.3.3 interrupt过程 102
5.3.2 strategy过程 102
5.3.4 各个命令处理函数 103
5.4 在C环境下实现驱动程序 105
5.4.1 数据在先 106
5.4.2 标注结尾函数 108
5.4.3 驱动程序的栈 109
5.4.4 数据段的切换 110
5.4.5 生成驱动程序的过程 111
5.5.1 预处理文本清单 112
5.5 一个设备驱动程序的C框架清单 112
5.5.2 块设备驱动程序框架程序 115
第六章 汉字输入法演示系统的设计与实现 124
6.1 系统概述 124
6.1.1 系统开发的目的 124
6.1.2 系统综述 124
6.2 系统运行环境的设计与实现 125
6.2.1 系统运行环境的设计 125
6.2.2 系统INT 10H的实现 126
6.3.1 演示模块的设计 135
6.3 演示模块的设计与实现 135
6.3.2 演示前的准备工作 136
6.3.3 演示模块的实现 143
6.3.4 演示模块的源程序 147
第七章 图形格式转换器 167
7.1 概述 167
7.2 图形格式简介 167
7.2.1 WPS桌面印刷系统的SPT格式 167
7.2.2 MS-WINDOWS的BMP格式 168
7.2.3 Zsoft的PCX格式 169
7.2.4 STORYBOARD的PIC格式 171
7.2.5 CorelDraw的EPS格式 174
7.3 图形格式的转换模型 174
7.3.1 总体设想 175
7.3.2 图形文件的内存模式 178
7.4 格式转换技术的应用 180
7.5 一个转换器CONVERT.C程序清单 181
第八章 图元编辑 200
8.1 概述 200
8.2 用户界面设计 200
8.2.1 系统文件说明 200
8.2.2 图文编辑程序的使用方法 201
8.2.3 如何将MEM.OBJ连入C语言的库中 206
8.2.4 图元调用函数说明 207
8.2.5 软件包的演示说明 211
8.3 主要数据结构设计 212
8.3.1 编辑板的数据结构 212
8.3.2 显示板的数据结构 212
8.3.3 图元在内存中的存储映像 213
8.3.4 图元库的结构 213
8.4 部分源程序示例 214
9.1.1 数据异步串行的发送和接收 279
第九章 串行口的编程 279
9.1 引言 279
9.1.2 RS-232C接口 280
9.1.3 UART内部寄存器定义 280
9.1.4 有关的硬件中断及其处理 286
9.2 利用BIOS串行通信管理程序 288
9.2.1 BIOS串行通信管理程序的功能 288
9.2.2 利用INT86函数调用BIOS串行口管理程序的C函数 290
9.2.3 一个简单的接收发送程序 291
9.2.4 利用BIOSCOM函数实现的接收发送程序 294
9.3.1 获取串行口的工作状态 298
9.3 直接操纵异步串行通信口 298
9.3.2 设置串行口的工作参数 299
9.3.3 查询方式的发送和接收 301
9.3.4 串行口测试程序CTCOM.C 304
9.4 一个简单的终端仿真程序 323
9.4.1 终端仿真程序TERMINAL.C 323
9.4.2 再论串行口中断处理程序 330
9.5 一个简单的文件传送程序 331
10.1 引言 346
第十章 声音 346
10.2 声音函数 347
10.2.1 产生声音函数 347
10.2.2 关闭声音函数 348
10.2.3 延时 348
10.3 实例 349
10.3.1 听力测试程序 349
10.3.2 音响模拟程序 350
10.3.3 简单音乐演奏程序 351
参考文献 354