Turbo系列语言混合编程PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:李文编写
- 出 版 社:北京:学苑出版社
- 出版年份:1993
- ISBN:7507708217
- 页数:403 页
第一部分 Turbo Prolog与其它语言的接口 1
第一章Turbo Prolog与其它语言接口的约定 1
§1.1 声明外部谓词 1
§1.2 调用约定和参数压栈顺序 1
§1.3 命名约定 2
第二章Turbo Prolog与Turbo C的接口 3
§2.1 Turbo Prolog调用Turbo C过程 3
§2.1.1 说明外部谓词 3
§2.1.2 建立C函数源程序 3
§2.1.3 Turbo C编译选项和连接 3
§2.1.4 动态存贮分配 4
§2.1.5 传递复合对象到其它语言的程序 5
§2.1.6 例子 6
§2.2 Turbo C调用Turbo Prolog 9
第三章Turbo Prolog与Turbo Assembler的接口 12
§3.1 声明外部谓词 12
§3.2 调用约定和参数压栈 12
§3.3 命名约定 12
§3.4 编写汇编语言谓词 13
§3.4.1 例:实现double谓词 16
§3.5 用多重流模式实现谓词 18
§3.6 从汇编函数调用Turbo Prolog谓词 19
§3.7 表和函子 21
§4.2.2 定义Fortran子程序并建立源程序 25
§4.2.1 在Prolog中说明外部谓词 25
§11.6.2 DOS单元数据类型 25
§4.2 Turbo Prolog调用MS-Fortran过程 25
第四章Turbo Prolog与MS-Fortran 4.0的接口 25
§4.1 系统设置 25
§4.2.2.3 屏幕输出 26
§4.2.2.1 命名约定 26
§4.2.2.2 参数约定 26
§4.2.4 例子 27
§4.2.3 连接步骤 27
§4.3 Fortran调用Turbo Prolog 29
§4.4 常用接口例程库、预处理程序的建立以及Fortran库的改造 30
§4.4.1 常用接口例程库的建立 30
§4.4.2 预处理程序 31
§4.4.3 Fortran库的改造 33
第五章 Turbo Prolong访问dBASEⅢ数据文件 39
§5.1 Prolog事实与dBASEⅢ记录 39
§5.2 dBASEⅢ中DBF的存贮结构 39
§5.4 利用Turbo Prolog工具库访问dBASEⅢ数据文件 40
§5.3 把DBF记录转换成Turbo Prolog事实 40
§5.4.1 一次读出dBASEⅢ文件的所有记录 41
§5.4.2 一次读出一个dBASEⅢ记录 42
第六章 Turbo Prolog与DOS系统级的接口 49
§6.1 访问DOS 49
§6.1.1 system/1 49
§6.1.2 system/3 49
§6.1.3 envsymbol/2 50
§6.1.4 date/3和time/4 50
§6.1.5 comline/1 51
§6.2 访问硬件:低级支撑 52
§6.2.1 bios/3和bios/4 52
§6.2.2 ptr_dword/3 53
§6.2.3 membyte/3 和memword/3 53
§6.2.4 port_byte/2 53
§6.3 例子: 54
第七章 Turbo C与汇编的接口 56
第二部分 Turbo C与其它语言的接口 56
§7.1 在Turbo C中使用嵌入式汇编 56
§7.1.1 嵌入式汇编如何工作 58
§7.1.1.1 Turbo C如何知道使用嵌入式汇编模式 61
§7.1.1.2 激活Turbo Assembler处理嵌入式汇编 62
§7.1.1.3 Turbo C在何处汇编嵌入式汇编码 62
§7.1.1.4 将-1开关用于80186/80286指令 63
§7.1.2 嵌入式汇编语句的格式 64
§7.1.2.1 嵌入式汇编中的分号 64
§7.1.2.2 嵌入式汇编中的注解 64
§7.1.2.3 访问结构/联合的元素 65
§7.1.3 嵌入式汇编示例 67
§7.1.4 嵌入式汇编的限制 70
§7.1.4.1 内存和地址操作数限制 70
§7.1.4.2 嵌入式汇编中缺少隐含的自动变量大小 71
§7.1.5.2 降低了编译速度 73
§7.1.5.1 降低了可移植性和可维护性 73
§7.1.4.3 必须保存寄存器 73
§7.1.4.3.1 保存调用函数和寄存器变量 73
§7.1.5 嵌入式汇编码相对于纯C代码的缺点 73
§7.1.4.3.2 抑制内部寄存器变量 73
§7.1.5.3 仅可由TCC使用 74
§7.1.5.4 损失了优化能力 74
§7.1.5.5 限制了对错误的反跟踪 74
§7.1.5.6 调试限制 74
§7.1.5.7 用C开发而用嵌入式汇编编译最终代码 75
§7.2 在Turbo C中调用Turbo Assembler函数 75
§7.2.1 Turbo C与Turbo Assembler的接口机制 76
§7.2.1.1 内存模式和段 76
§7.2.1.1.1 简化的段伪指令与Turbo C 76
§7.2.1.1.2 过时风格的段伪指令与Turbo C 78
§7.2.1.1.3 段缺省:何时需要装载段? 80
§7.2.1.2 公共量和外部量 83
§7.2.1.2.1 下划线 83
§7.2.1.2.2 大小写字母的意义 84
§7.2.1.2.3 标号类型 84
§7.2.1.2.4 远类型的外部量必须在任何段之外 85
§7.2.1.3 链接器命令行 87
§7.2.2 Turbo Assembler与Turbo C的交互性 87
§7.2.2.1 参数传递 87
§7.2.2.2 保存寄存器 93
§7.2.2.3 返回值 94
§7.2.3 从Turbo C中调用Turbo Assembler函数 95
§7.2.4 Pascal调用约定 98
§7.3.1 链入C的启动码 99
§7.3 在Turbo Assembler中调用Turbo C 99
§7.3.2 确保已正确设置了段 100
§7.3.3 执行调用 100
§7.3.4 在Turbo Assembler调用Turbo C函数 101
第八章 Turbo C与DOS、BIOS的接口 104
§8.1 寄存器 104
§8.2 中断 105
§8.2.1 使用DOS中断的注意事项 105
§8.3 利用功能调度器实现中断 105
§8.4 使用BIOS中断 145
§8.5 小结 152
第三部分 Turbo Pascal与其它语言的接口 153
第九章Turbo Pascal与汇编语言的接口 153
§9.1 扩展Turbo Pascal 153
§9.1.2 嵌入代码 153
§9.2 嵌入指令 155
§9.3.1 外部函数 156
§9.3 外部过程 156
§9.3.2 使用全程数据和过程 158
§9.3.3 使用Turbo Assembler 160
§9.4 嵌入代码与外部过程的比较 163
§9.5 使用Turbo Debugger 163
第十章 再论Turbo Pascal与汇编的接口 169
§10.1 Turbo Pascal内存映象 169
§10.1.1 程序段前缀 169
§10.1.2 代码段 169
§10.1.3 全局数据段 170
§10.1.4 堆栈 170
§10.4.1 $L编译伪指令和外部子程序 171
§10.4 与Turbo Pascal共享信息 171
§10.3 近调用还是远调用? 171
§10.1.5 堆 171
§10.2 Turbo Pascal中寄存器的用法 171
§10.4.2 PUBLIC伪指令:使Turbo Pascal可利用Turbo Assembler的信息 172
§10.4.3 EXTRN伪指令:使Turbo Assembler可利用Turbo Pascal的信息 173
§10.4.3.1 使用EXTRN对象的限制 175
§10.4.4 使用段定位 175
§10.5.1.1 标量类型 176
§10.4.5 无效代码的消除 176
§10.5 Turbo Pascal参数传递约定 176
§10.5.1 值参 176
§10.5.1.2 实型 177
§10.5.1.3 单精度、双精度、扩展的和复合型:8087类型 177
§10.5.1.4 指针 177
§10.5.1.5 串 177
§10.5.1.6 记录和数组 177
§10.5.1.7 集合 177
§10.5.2 变量参数 178
§10.5.3 栈的维护 178
§10.5.4 存取参数 178
§10.5.4.1 使用BP寄存器寻址堆栈 178
§10.5.4.1.1 ARG伪指令 179
§10.5.4.1.3 使用另一个基址或变址寄存器 180
§10.5.4.1.2 .MODEL和Turbo Pascal 180
§10.6.5 指针函数结果 181
§10.6 Turbo Pascal中的函数结果 181
§10.7.1 分配私有静态存贮区 181
§10.7 为局部数据分配空间 181
§10.6.3 8087函数结果 181
§10.6.4 串函数结果 181
§10.6.2 实型函数结果 181
§10.6.1 标量函数结果 181
§10.7.2 分配动态存贮区 182
§10.8 由Turbo Pascal调用汇编语言子程序的例子 183
§10.8.1 通用16进制转换子程序 183
§10.8.2 交换两个变量 186
§10.8.3 扫描DOS环境 189
第十一章Turbo Pascal与DOS和BIOS的接口 194
§11.1 8088寄存器 194
§11.2 DOS单元 195
§11.3 寄存器集 195
§11.4 磁盘驱动功能调用 197
§11.4.1 报告磁盘空闲空间 197
§11.4.2 读取和设置文件属性 199
§14.4.3 目录列表 203
§11.4.1 报告当前视频模式 207
§11.4 视频功能调用 207
§11.4.2 设置光标大小 208
§11.4.3 从屏幕读字符 210
§11.5 时间和日期功能 211
§11.5.1 获取系统日期 211
§11.5.2 设置系统日期 213
§11.5.3 获取和设置系统时间 214
§11.5.4 获取和设置文件的时间和日期 216
§12.6 报告换档键状态 222
§11.6.1 DOS单元常量 224
§11.6 Turbo Pascal DOS单元 224
§11.6.2.1 DateTime类型 226
§11.6.2.2 SearchRec类型 226
§11.6.3 DosError变量 226
§11.6.4 DOS单元过程与函数 227
§11.6.4.1 中断支持子程序 227
§11.6.4.2 日期和时间例程 227
§11.6.4.3 磁盘和文件例程 227
§11.6.5 进程例程 227
§12.1 传递参数 240
第十二章Turbo Basic与Turbo Assemlber的接口 240
第四部分Turbo Basic与其它语言的接口 240
§12.1.1 不在当前数据段的变量 242
§12.1.2 什么类型的调用? 242
§12.2 弹出堆栈 243
§12.3 为Turbo Basic创建一个汇编程序 243
§12.4 调用一个在线汇编子程序 243
§12.5 在内存中安装一个Turbo Basic子程序 245
§12.5.1 隐藏串 246
§12.5.2 绝对调用(CALL ABSOLUTE) 247
§12.5.2.1 到一固定内存位置作CALL ABSOLUTE 247
§12.5.2.2 到内存不定位置作CALL ABSOLUTE 248
§12.5.2.3 CALL ABSOLUTE的其他问题 249
§12.6 调用中断 249
§12.7 样本程序 250
第五部分 混合编程程序的调试 253
第十三章Turbo Debugger调试的一个快速示例 253
§13.1 演示程序 253
§13.2 使用Turbo Debugger 254
§13.2.1 菜单(The menus) 254
§13.2.2 状态行(The status line) 254
§13.2.3 窗口(The windows) 255
§13.3 使用C演示程序 256
§13.3.1 设置断点(Setting breakpoints) 257
§13.3.2 利用监视(Using watches) 257
§13.3.3 考察简单的C数据对象 257
§13.3.4 考察复杂的C数据的对象 259
§13.3.5 改变C数据值 259
§13.4 使用Pascal示例程序 260
§13.4.1 设置断点(Setting breakpoints) 261
§13.4.2 使用监视(Using watches) 262
§13.4.3 考察简单的Pascal数据对象 262
§13.4.4 考察复杂的Pascal数据对象 263
§13.4.5 改变Pascal数据值 264
第十四章 启动Turbo Debugger 266
§14.1 准备待调试的程序 266
§14.1.1 准备Turbo C程序 266
§14.1.2 准备Turbo Pascal程序 266
§14.1.3 准备Turbo汇编程序 266
§14.1.4 准备Microsoft程序 267
§14.2 运行Turbo Debugger 267
§14.3 命令行选择项 267
§14.3.7 设置堆大小(-m) 268
§14.3.6 汇编模式启动(-l) 268
§14.3.5 击键记录(-k) 268
§14.3.3 获取帮助(-h与-?) 268
§14.3.2 显示更新方式(-d) 268
§14.3.1 装载配置文件(-c) 268
§14.3.4 进程ID转换(-i) 268
§14.3.8 鼠标器支持(-p) 269
§14.3.9 远程调试(-r) 269
§14.3.10 源代码处理(-s) 269
§14.3.11 视频硬件(-v) 269
§14.4 配置文件 270
§14.5 选项菜单 270
§14.3.12 覆盖池大小(-y) 270
§14.5.1 语言命令 271
§14.5.2 宏菜单 271
§14.5.2.1 创建(Create) 271
§14.5.2.2 停止记录(Stop Recording) 271
§14.5.2.3 删除(Remove) 271
§14.5.2.4 全清(Delete All) 271
§15.5.3 显示选择命令 271
§14.5.3.1 显示切换 271
§14.5.5 保存选择项命令 272
§14.5.3.4 制表键大小 272
§14.5.4 源命令路径 272
§14.5.3.2 整数格式 272
§14.5.3.3 屏幕行数 272
§14.5.6 恢复选择项命令 273
§14.6 在Turbo Debugger中运行DOS 273
§14.7 返回DOS 273
第六部分 混合编程的参考资料 275
附录A TASM命令行参考 275
§A.1 在DOS中启动Turbo Assembler 275
§A.2 命令行选择项 277
§B.1.1 一个快速示例 287
附录B 混合编程实用程序 287
§B.1 独立的MAKE实用程序 287
§B.1.1.1 创建一个make文件 288
§B.1.1.2 使用一个make文件 289
§B.1.1.3 步进 289
§B.1.2 创建make文件 290
§B.1.2.1 Make文件的组成 290
§B.1.3 使用MAKE 301
§B.1.3.1 命令行语法 301
§B.1.3.5 TOUCH实用程序 302
§B.1.3.4 MAKE是如何查找make文件的 302
§B.1.3.2 中止MAKE的说明 302
§B.1.3.3 BUILTINS.MAK文件 302
§B.1.3.6 MAKE命令行选择项 303
§B.1.4 MAKE出错信息 303
§B.1.4.1 致命错 303
§B.1.4.2 一般错 304
§B.2 Turbo Link 305
§B.2.1 调用TLINK 305
§B.2.2 使用应答文件 306
§B.2.3 TLINK选择项 307
§B.2.3.1 /x,/m,/s选择项 307
§B.2.3.3 /i选择项 308
§B.2.3.2 /l选择项 308
§B2.3.4 /n选择项 309
§B2.3.5 /c选择项 309
§B2.3.6 /d选择项 309
§B2.3.7 /e选择项 309
§B2.3.8 /t选择项 309
§B2.3.9 /v选择项 309
§B2.3.10 /s选择项 310
§B.2.4 一些限制 310
§B.2.5 出错消息 310
§B.2.5.1 致命错 310
§B2.5.2 非致命错 311
§B2.5.3 警告 312
§B.3 TLIB:Turbo库管理员 312
§B.3.1 使用目标模块库的优点 312
§B.3.2 TLIB命令行的组成 313
§B.3.2 操作表(Operations) 313
§B.3.3 使用应答文件 315
§B.3.4 改进的操作:/c选择项 315
§B.3.5 例子 315
§B.3.6 创建一扩展词典:/E选择项 316
§B.4 GREP:一种文件查找实用程序 316
§B.4.1 GREP选择项 316
§B.4.1.1 优先级次序 317
§B.4.2 查找串 318
§B.4.2.1 正则表达式中的操作符 318
§B.4.3 文件说明 318
§B.4.4 带说明的例子 318
§D.5 OBJXREF:目标模块交叉引用实用程序 321
§D.5.1 OBJXREF命令行 321
§D.5.1.1 命令行选择项 321
§D.5.2 应答文件 322
§D.5.2.1 自由形式的应答文件 322
§D.5.2.2 连接器应答文件 322
§D.5.3 OBJXREF报告样本 323
§D.5.2.5 /N命令 323
§D.5.2.3 /D命令 323
§D.5.2.4 /O命令 323
§D.5.3.1 按公用名报告(/RP) 324
§D.5.3.2 按模块报告(/RM) 325
§D.5.3.3 按引用报告(/RR)(缺省方式) 325
§D.5.3.4 按外部引用报告(/RX) 325
§D.5.3.5 按模块长度报告(/RS) 326
§D.5.3.6 按类报告(/RC) 326
§D.5.3.7 按未引用符号名报告(/RV) 326
§D.5.5.1 出错信息 327
§D.5.5.2 警告 327
§D.5.4 使用OBJXREF的例子 327
§D.5.5 OBJXREF出错信息和警告 327
§D.5.3.8 冗长报告(/RV) 327
§D.6 TCREF:源模块交叉引用实用程序 328
§D.6.1 应答文件 328
§D.6.2 与TLINK的兼容 328
§D.6.2.1 开关 329
§D.6.2.2 全局(或连接器级)报告 329
§D.6.2.3 局部(或模块级)报告 329
附录C 嵌入汇编的助记符与机器码对照表 330
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《音乐语言的根基》张艺编著 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《认知语言学视野的抽象方位结构研究》曹爽著 2019
- 《激活语言思维》李蒨,王宏年,汤青编著 2017
- 《汉语言文学本科专业核心课程研究导引教材 古代汉语》马蓝婕责任编辑;(中国)魏宜辉 2019
- 《英语教师语言意识研究》秦莉,赵春贺著 2019
- 《基于多维视角的英语语言学理论探索与应用》刘曦著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《学前儿童发展心理学 第2版》刘万伦主编;王文秀,甘卫群,刘万伦编写人员 2019
- 《一个数学家的辩白》(英)哈代(G.H.Hardy)著;李文林,戴宗铎,高嵘译 2019
- 《习近平总书记教育重要论述讲义》本书编写组 2020
- 《液固旋流分离新技术》中国化工学会组织编写;汪华林等著 2019
- 《新编高中物理竞赛教程习题全解》钟小平主编;钟小平,倪国富,曹海奇编写 2019
- 《声动中国 七十年歌声里的中国故事》王一诺责任编辑;(中国)《声动中国》编写组 2019
- 《对话中国》《对话中国》编写组著 2019
- 《绿色过程工程与清洁生产技术 张懿院士论文集精选 上》《绿色过程工程与清洁生产技术》编写组编 2019
- 《近代中国分省人文地理影像采集与研究 甘肃》《近代中国分省人文地理影像采集与研究》编写组 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《西单大杂院-北京老舍文学院首届中青年作家高研班学员小说作品集》北京老舍文学院编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 七年级 上 配人教版》周志英总主编 2019
- 《北京人民艺术剧院剧本系列 白露》刘国华,马鹏程 2019
- 《北京模式》吴建繁,王德海,朱岩编 2017
- 《指向核心素养 北京十一学校名师教学设计 数学 八年级 上 配人教版》周志英总主编 2019