第一章MS—DOS的实现 1
1.1 操作指令 1
目 录 1
1.1.1 第一趟扫描 2
1.1.2第二趟扫描 5
1.1.3程序链接 5
1.1.4程序执行 7
1.1.5 函数提取实用程序 8
1.1.6 目标模块反汇编 10
1.2.1 数据元素 11
1.2机器相关 11
1.2.2外部名 12
1.2.3包括文件处理 12
1.2.4算术运算及其转换 13
1.2.5浮点运算 13
1.2.6位域 14
1.2.7寄存器变量 14
1.3编译过程 14
1.3.3错误处理 15
1.3.1第一趟扫描 15
1.3.2第二趟扫描 15
1.3.4代码生成 16
1.4 内存定址模式 18
1.4.1 选择内存模式 18
1.4.2 对内存模式的编译 19
1.4.3链接程序 19
1.4.4指针操作的代码生成 19
1.4.6 使用D块和L模式要特别谨慎 20
1.4.5 用于四字节指针的-S选择 20
1.4.7 生成大于64K字节的数组 21
1.5运行时程序结构 22
1.5.1 目标代码约定 23
1.5.2链接约定 24
1.5.3函数调用约定 24
1.5.4汇编语言接口 26
1.5.5栈溢出检测 30
1.6系统库实现 30
1.6.1 I/O文件 31
1.6.2 I/O设备 32
1.6.3内存分配 33
1.6.4程序入口/出口 33
1.6.5特殊函数 34
第二章语言定义 38
2.1 定义概述 38
2.1.1 与标语C语言的差异 38
2.1.2任意限定 39
2.2.1 予处理器特点 40
2.2 主要语言特点 40
2.2.2算术目标 41
2.2.3导出目标 41
2.2.4存贮类别 41
2.2.5标识符作用域 42
2.2.6初始化 43
2.2.7表达式求值 43
2.2.8控制流 44
2.3对C语言参考手册的修正 44
3.1.1 3级内存分配 47
第三章库函数 47
3.1 内存分配函数 47
3.1.2 2级内存分配 49
3.1.3 1级内存分配 51
3.2 I/O和系统的函数 52
3.2.1 2级I/O函数和宏 53
3.2.2 1级I/O函数 63
3.2.3直接控制台I/O函数 67
3.2.4程序出口函数 69
3.3.1内存实用函数 70
3.3实用函数和宏 70
3.3.2 字符类型宏 71
3.3.3串实用函数 72
3.3.4实用宏 80
附录A错误信息 81
附录B编译器错误 87
附录C CP/M程序的转换 88
附录D文件清单 89