《Turbo系列语言混合编程》求取 ⇩

第一部分 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 Prolog9

第三章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 Prolog29

§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 访问DOS49

§6.1.1 system/149

§6.1.2 system/349

§6.1.3 envsymbol/250

§6.1.4 date/3和time/450

§6.1.5 comline/151

§6.2 访问硬件:低级支撑52

§6.2.1 bios/3和bios/452

§6.2.2 ptr_dword/353

§6.2.3 membyte/3 和memword/353

§6.2.4 port_byte/253

§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 C76

§7.2.1.1.2 过时风格的段伪指令与Turbo C78

§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 C99

§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 Pascal153

§9.1.2 嵌入代码153

§9.2 嵌入指令155

§9.3.1 外部函数156

§9.3 外部过程156

§9.3.2 使用全程数据和过程158

§9.3.3 使用Turbo Assembler160

§9.4 嵌入代码与外部过程的比较163

§9.5 使用Turbo Debugger163

第十章 再论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 Pascal180

§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 ABSOLUTE247

§12.5.2.2 到内存不定位置作CALL ABSOLUTE248

§12.5.2.3 CALL ABSOLUTE的其他问题249

§12.6 调用中断249

§12.7 样本程序250

第五部分 混合编程程序的调试253

第十三章Turbo Debugger调试的一个快速示例253

§13.1 演示程序253

§13.2 使用Turbo Debugger254

§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 Debugger266

§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 Debugger267

§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中运行DOS273

§14.7 返回DOS273

第六部分 混合编程的参考资料275

附录A TASM命令行参考275

§A.1 在DOS中启动Turbo Assembler275

§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 使用MAKE301

§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 Link305

§B.2.1 调用TLINK305

§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

1993《Turbo系列语言混合编程》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由李文编写 1993 北京:学苑出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

Windows操作系统环境混合语言程序设计(1995 PDF版)
Windows操作系统环境混合语言程序设计
1995 北京:电子工业出版社
列宁的语言(混声合唱、钢琴)  俄文(1960 PDF版)
列宁的语言(混声合唱、钢琴) 俄文
1960
80386汇编语言编程( PDF版)
80386汇编语言编程
北京希望电脑公司
Microsoft C5.0 优化编译  混合语言程序设计指南  第5册( PDF版)
Microsoft C5.0 优化编译 混合语言程序设计指南 第5册
中国科学院科海培训中心;中国科学院软件所
混合语言程序设计指南(1990 PDF版)
混合语言程序设计指南
1990
APPLE组合语言程式( PDF版)
APPLE组合语言程式
北方电脑公司信息资料部
APPLE组合语言程式( PDF版)
APPLE组合语言程式
北方电脑公司信息资料部
Turbo Pascal语言及其编程方法(1993 PDF版)
Turbo Pascal语言及其编程方法
1993 广州:华南理工大学出版社
C语言简明教程与TURBO C程序开发系统(1993 PDF版)
C语言简明教程与TURBO C程序开发系统
1993 西安:西安电子科技大学出版社
C语言和汇编语言的混合高级编程(1989 PDF版)
C语言和汇编语言的混合高级编程
1989 北京科海培训中心
8086/386系列汇编语言程序设计(1994 PDF版)
8086/386系列汇编语言程序设计
1994 北京:北京邮电学院出版社
FoxBASE、C和汇编语言的混合编程(1994 PDF版)
FoxBASE、C和汇编语言的混合编程
1994 成都:电子科技大学出版社
Turbo C编程技巧(1994 PDF版)
Turbo C编程技巧
1994 成都:电子科技大学出版社
Turbo C语言程序设计400例(1996 PDF版)
Turbo C语言程序设计400例
1996 北京:电子工业出版社
Turbo C语言程序设计(1991 PDF版)
Turbo C语言程序设计
1991 北京:电子工业出版社