IBMPC混合语言程序设计指南 1
第一部分 混合语言接口 1
第一章 混合语言程序设计基础 1
1.1 进行混合语言调用 1
目录 1
1.2 命名约定要求 2
1.3 调用约定要求 4
1.4 传送参数要求 4
1.5 编译和连接 5
1.5.1 用适当的存储模型编译 5
1.5.2 和语言程序库连接 6
2.1.1 DECLARE语句 7
第二章 BASIC调用高级语言 7
2.1 BASIC与对其它语言的接口 7
2.1.2 使用ALIAS 8
2.1.3 使用参数表 8
2.2 另一种BASIC接口 9
2.3 BASIC调用C 9
2.3.1 从BASIC调用C——不送回值 9
2.3.2 从BASIC调用C——函数调用 10
2.4 BASIC调用FORTRAN 11
2.4.1 从BASIC调用FORTRAN——子例行程序调用 11
2.5 BASIC调用Pascal 12
2.5.1 从BASIC调用Pascal——过程调用 12
2.4.2 从BASIC调用FORTRAN——函数调用 12
2.5.2 从BASIC调用Pascal——函数调用 13
2.6 对来自BASIC调用的限制 13
2.6.1 存储分配 14
2.6.2 不兼容函数 14
第三章 C调用高级语言 16
3.1 C与其它语言的接口 16
3.2 另一种C接口 17
3.3 C调用BASIC 17
3.4 C调用FORTRAN 19
3.4.1 从C调用FORTRAN——子例行程序调用 19
3.5 C调用Pascal 20
3.4.2 从C调用FORTRAN——函数调用 20
3.5.1 从C调用Pascal——过程调用 21
3.5.2 从C调用Pascal——函数调用 21
第四章 FORTRμN调用高级语言 23
4.1 FORTRAN与其它语言的接口 23
4.1.1 INTERFACE 23
4.1.2 使用ALIAS 24
4.2 另一种与C的FORTRAN接口 24
4.3 FORTRAN调用 BASIC 24
4.4 FORTRAN调用C 25
4.4.1 从FORTRAN调用C——没有送回值 25
4.4.2 从FORTRAN调用Pascal——函数调用 27
4.5 FORTRAN调用Pascal 28
4.5.1 从FORTRAN调用Pascal——过程调用 28
4.5.2 从FORTRAN调用PasCaL—函数调用 29
5.1 Pascal与其它语言的接口 30
5.2 另一种与C的Pascal接口 30
第五章 Pascal L调用高级语言 30
5.3 Pascal调用BASIC 31
5.4 Pascal 调用C 32
5.4.1 从Pascal调用C—没有送回值 32
5.4.2 从Pa scal C—函数调用 33
5.5 Pascal调用FORTRAN 33
5.5.1 从Pascal调用FORTRAN—子例行程序调用 33
5.5.2 从Pascal调用EORTRAN——函数调用 34
6.书写汇编过程 36
6.1.1 建立过程 36
第六章 汇编与高级语言的接口 36
6.1.2 进入过程 37
6.1.3 分配局部数据(任选的) 37
6.1.4 保存寄存器值 38
6.1.5 存取参数 38
6.1.6 送回值(任选的) 39
6.1.7 退出过程 41
6.2 从BASIC调用 41
6.3 从C调用 43
6.4 从FORTRAN调用 44
6.5 从Pascal调用 46
6.6 从汇编调用高级语言 48
6.7 Microsoft段模型 48
7.1 BASIC自变量 51
第二部分 数据处理引用 51
第七章 按引用或按值传送 51
7.2 C自变量 52
7.3 FORTRAN自变量 53
7.4 Pascal自变量 53
第八章 数值的、逻辑的和字符串数据 55
8.1 整数和实数 55
8.2 FORTRAN复数型 55
8.3 FORTRAN逻辑型 56
8.4 字符串 56
8.4.1 字符串格式 57
8.4.2 传送BASIC字符串 58
8.4.3 传送C字符串 60
8.4.4 传送FORTRAN字符串 61
8.4.5 传送Pascal字符串 62
第九章 特殊数据类型 64
9.1 数组 64
9.1.1 从BASIC传送数组 64
9.1.2 数组说明和附标 65
9.2 结构、记录和用户定义类型 66
9.3 外部数据 67
9.4 指针和地址变量 68
9.5 公用块 69
9.5.1 传送公用块的地址 69
9.5.2 直接存取公用块 69
9.6 使用可变数目的参数 70
下编 软件开发工具(Code View及其它实用程序) 71
第一章 概述 71
1.1 限制 71
1.2 为Codeview调试程序准备程序 74
1.3 启动Codeview调试程序 81
1.4 使用Codeview任选项 84
1.5 用汇编程序的旧版本工作 88
第二章 Codeview显示 89
2.1 使用窗口模式 89
2.2 使用顺序模式 104
第三章 使用对话命令 106
3.1 键入命令和自变量 106
3.2 Codeview命令和自变量的格式 107
第四章 Codeview表达式 108
4.1 C表达式 108
4.2 FORTRAN表达式 110
4.3 BASIC表达式 113
4.4 Pascal表达式 116
4.5 汇编语言表达式 118
4.6 行号 120
4.7 寄存器和地址 120
4.8 内存操作符 122
4.9 转换表达式求值符 124
第五章 执行代码 125
5.1 跟踪命令 125
5.2 程序单步命令 127
5.3 运行命令 129
5.4 执行命令 131
5.5 重启命令 131
第六章 检查数据和表达式 133
6.1 显示表达式命令 133
6、2 检查符号命令 140
6.3 转储命令 144
6.4 比较内存命令 149
6.5 搜索内存命令 150
6.6 端口输入命令 151
6.7 寄存器命令 151
6.8 8087命令 152
7.1 设置断点命令 155
第七章 管理断点 155
7.2 清除断点命令 157
7.3 禁止断点命令 157
7.4 开放断点命令 158
7.5 列表断点命令 159
第八章 管理监视语句 160
8.1 设置监视表达式和监视内存语句 160
8.2 设置监视点 163
8.3 设置跟踪点 165
8.4 删除监视语句 167
8.5 列出监视点和跟踪点 168
8.6 C例子 169
8.8 Pascal例子 170
8.7 FORTRAN例子 170
8.9 汇编语言例子 171
第九章 检查代码 173
9.1 设置模式命令 173
9.2 反汇编命令 174
9.3 观察命令 175
9.4 当前位置命令 177
9.5 栈跟踪命令 178
第十章 修改代码或数据 181
10.1 汇编命令 181
10.2 键入命令 183
10.3 填写内存命令 189
10.4 移动内存命令 190
10.5 端口输出命令 191
10.6 寄存器命令 191
第十一章 使用Codeview系统控制命令 194
11.1 求助命令 194
11.2 退出命令 194
11.3 基制命令 195
11.4 重绘命令 196
11.5 屏幕交换命令 197
11.6 搜索命令 197
11.7 外壳出口命令 199
11.8 制表设置命令 200
11.9 任选项命令 200
11.10 重定向命令 202
第十二章 用LINK连接目标文件 206
12.1 指定连接的文件 206
12.2 指定连接程序的任选项 212
12.3 用LINK环境变量选择任选项 221
12.4 连接程序的操作 222
12.5 使用覆盖 224
第十三章 用LIB管理程序库 226
13.1 管理程序库 226
13.2 用LIB执行程序库的管理任务 231
第十四章 用MAKE自动化程序开发 236
14.1 使用MAKE 236
14.2 建立MAKE描述文件 237
14.3 自动化程序开发 239
14.4 运行MAKE 240
14.5 指定MAKE任选项 240
14.6 对MAKE使用宏定义 240
14.7 定义推理规则 243
第十五章 使用EXEPACK.EXEMOD.SETENV和ERROUT 245
15.1 用EXEPACK实用程序压缩可执行文件 245
15.2 用EXEMOD实用程序修改程序头 246
15.3 用SETENV实用程序扩展DOSC的环境 248
15.4 用ERROUT实用程序改变错误输出的方向 249
附录A 正则表达式 251
附录B 使用退出码 254
附录C 错误信息 256