《微机高级语言与汇编语言接口技术和实例》求取 ⇩

第0章 概述1

目录1

0.1 适合高级程序设计语言调用的汇编语言子程序的编写格式2

O.1.1 建立过程3

0.1.2 进入过程,建立一个参数表的固定基点3

0.1.3 分配局部数据空间3

0.1.4 保存调用代码的寄存器值4

0.1.7 恢复寄存器,退出过程返回调用程序5

0.3 对于Fortran和Pascal的长返回值问题5

0.2 各高级程序设计语言调用汇编语言子程序的具体约定5

0.1.6  送返回值5

0.1.5 存取参数,编写对参数的具体处理过程5

第一部分 Turbo C与其它语言的接口8

第一章 Turbo C与汇编语言的接口8

1.1 在Turbo C中使用嵌入式汇编8

1.1.1 嵌入式汇编如何工作10

1.1.1.1 Turbo C如何知道使用嵌入式汇编模式13

1.1.1.2 激活Turbo Assembler处理嵌入式汇编14

1.1.1.3 Turbo C在何处汇编嵌入式汇编码14

1.1.1.4 将-1开关用于80186/80286指令15

1.1.2.1 嵌入式汇编中的分号16

1.1.2.2 嵌入式汇编中的注解16

1.1.2 嵌入式汇编语句的格式16

1.1.2.3 访问结构/联合的元素17

1.1.3 嵌入式汇编示例18

1.1.4 嵌入式汇编的限制22

1.1.4.1 内存和地址操作数限制22

1.1.4.2 嵌入式汇编中缺少隐含的自动变量大小23

1.1.4.3 必须保存寄存器24

1.1.5.2 降低了编译速度25

1.1.5.3 仅可由TCC使用25

1.1.5.4 损失了优化能力25

1.1.5.1 降低了可移植性和可维护性25

1.1.5 嵌入式汇编码相对于纯C代码的缺点25

1.1.5.5 限制了对错误的反跟踪26

1.1.5.6 调试限制26

1.1.5.7 用C开发而用嵌入式汇编编译最终代码26

1.2 从Turbo C中调用Turbo Assembler函数27

1.2.1 Turbo C与TurboAssembler的接口机制27

1.2.1.1 内存模式和段28

1.2.1.2 公共量和外部量34

1.2.1.3 链接器命令行38

1.2.2 Turbo Assembler与Turbo C的交互性38

1.2.2.1 参数传递39

1.2.2.3 返回值45

1.2.2.2 保存寄存器45

1.2.3 从Turbo C中调用TurboAssembler函数46

1.2.4 Pascal调用约定49

1.3 在Turbo Assembler中调用Turbo C50

1.3.1 链入C的启动码50

1.3.2 确保已正确设置了段51

1.3.3 执行调用51

1.3.4 在Turbo Assembler调用Turbo C函数52

第二章 TurboC与DOS、BIOS的接口54

2.1 寄存器54

2.2.1 使用DOS中断的注意事项55

2.2 中断55

2.3 利用功能调度器实现中断56

2.4 使用BIOS中断93

2.5 小结100

第二部分 Turbo Pascal与其它语言的接口102

第三章 Turbo Pascal与汇编语言的接口102

3.1 扩展Turbo Pascal102

3.2 嵌入指令104

3.3 外部过程105

3.3.1 外部函数105

3.3.2 使用全程数据和过程107

3.3.3 使用Turbo Assembler109

3.5 使用TurboDebugger112

3.4 嵌入代码与外部过程的比较112

第四章 再论与Turbo Pascal和汇编语言的接口117

4.1 Turbo Pascal内存映象117

4.1.1 程序段前缀117

4.1.2 代码段118

4.1.3 全局数据段118

4.2 Turbo Pascal中寄存器的用法119

4.3 近调用还是远调用?119

4.1.5 堆119

4.1.4 堆栈119

4.4 与Turbo Pascal共享信息120

4.4.1 $L编译伪指令和外部子程序120

4.4.2 PUBLIC伪指令:使Turbo Pascal可利用Turbo Assembler的信息121

4.4.3 EXTRN伪指令:使Turbo Assembler可利用Turbo Pascal的信息121

4.4.4 使用段定位124

4.4.5 无效代码的消除124

4.5 Turbo Pascal参数传递约定124

4.5.1.6 记录和数组125

4.5.1.5 串125

4.5.1.4 指针125

4.5.1.2 实型125

4.5.1.3 单精度、双精度、扩展的和复合型:8087类型125

4.5.1.1 标量类型125

4.5.1 值参125

4.5.1.7 集合126

4.5.2 变量参数126

4.5.3 栈的维护126

4.5.4 存取参数126

4.7 为局部数据分配空间129

4.6.5 指针函数结果129

4.6.4 串函数结果129

4.6.3 8087函数结果129

4.6.2 实型函数结果129

4.6.1 标量函数结果129

4.6 Turbo Pascal中的函数结果129

4.7.1 分配私有静态存贮区130

4.7.2 分配动态存贮区130

4.8 由Turbo Pascal调用汇编语言子程序的例子131

4.8.1 通用16进制转换子程序131

4.8.2 交换两个变量134

4.8.3 扫描DOS环境137

5.1 8088寄存器142

第五章 Turbo Pascal与DOS和BIOS的接口142

5.2 DOS单元143

5.3 寄存器集144

5.4 磁盘驱动功能调用146

5.4.1 报告磁盘空闲空间146

5.4.2 读取和设置文件属性147

5.4.3 目录列表151

5.5 视频功能调用155

5.5.1 报告当前视频模式155

5.5.2 设置光标大小156

5.5.3 从屏幕读字符157

5.6 时间和日期功能159

5.6.1 获取系统日期159

5.6.2 设置系统日期160

5.6.3 获取和设置系统时间161

5.6.4 获取和设置文件的时间和日期164

5.6.5 报告换档键状态169

5.7 Turbo Pascal DOS单元171

5.7.1 DOS单元常量171

5.7.2 DOS单元数据类型172

5.7.2.2 SearchRec类型173

5.7.3 DosError变量173

5.7.2.1 DateTime类型173

5.7.4 DOS单元过程与函数174

5.7.4.1 中断支持子程序174

5.7.4.2 日期和时间例程174

5.7.4.3 磁盘和文件例程174

5.7.5 进程例程175

第三部分 Turbo Basic与其它语言的接口188

第六章 Turbo Basic与Turbo Assemlber的接口188

6.1 传递参数188

6.1.2 什么类型的调用?190

6.1.1 不在当前数据段的变量190

6.2 弹出堆栈191

6.3 为Turbo Basic创建一个汇编程序191

6.4 调用一个在线汇编子程序191

6.5 在内存中安装一个Turbo Basic子程序193

6.5.1 隐藏串194

6.5.2 绝对调用(CALL ABSOLUTE)195

6.5.2.1 到一固定内存位置作CALL ABSOLUTE196

6.5.2.2 到内存不定位置作CALL ABSOLUTE196

6.5.2.3 CALLABSOLUTE的其他问题197

6.6 调用中断197

6.7 样本程序198

第四部分 Turbo Prolog与其它语言的接口202

第七章 Turbo Prolog与Turbo C的接口202

7.1 声明外部谓词202

7.2 调用约定和参数压栈顺序202

7.3 命名约定203

7.4 Turbo Prolog调用Turbo C过程204

7.4.1 说明外部谓词204

7.4.2 建立C函数源程序204

7.4.3 Turbo C编译选项和连接204

7.4.4 动态存贮分配205

7.4.5 传递复合对象到其它语言的程序206

7.4.6 例子207

7.5 Turbo C调用Turbo Prolog210

第八章 Turbo Prolog与Turbo Assembler的接口213

8.1 声明外部谓词213

8.2 调用约定和参数压栈213

8.3 命名约定214

8.4 编写汇编语言谓词214

8.5 用多重流模式实现谓词219

8.6 从汇编函数调用Turbo Prolog谓词220

8.7 表和函子222

9.2.1 在Prolog中说明外部谓词226

9.2 Turbo Prolog调用MS-Fotran过程226

第九章 Turbo Proiog与MS-Fortran 4.0的接口226

9.1 系统设置226

9.2.2 定义Fortran子程序并建立源程序227

9.2.2.1 命名约定227

9.2.2.2 参数约定227

9.2.2.3 屏幕输出227

9.2.3 连接步骤228

9.2.4 例子228

9.3 Fortran调用Turbo Prolog230

9.4.1 常用接口例程库的建立231

9.4 常用接口例程库、预处理程序的建立以及Fortran库的改造231

9.4.2 预处理程序232

9.4.3 Fortran库的改造234

第十章 Turbo Prolog访问dBASEⅢ数据文件240

10.1 Prolog事实与dBASEⅢ记录240

10.2 dBASEⅢ中DBF的存贮结构240

10.3 把DBF记录转换成Turbo Prolog事实241

10.4 利用Turbo Prolog工具库访问dBASEⅢ数据文件242

10.4.1 一次读出dBASEⅢ文件的所有记录242

10.4.2 一次读出一个dBASEⅢ记录243

11.1.2 system/3250

11.1.1 system/1250

11.1 访问DOS250

第十一章 Turbo Prolog与DOS系统级的接口250

11.1.3 envsymbol/2251

11.1.4 date/3和time/4252

11.1.5 comline/1252

11.2 访问硬件:低级支撑253

11.2.1 bios/3和bios/4253

11.2.2 ptr-dword/3254

11.2.3 membyte/3和memword/3254

11.3 例子:255

11.2.4 port-byte/2255

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

第十二章 Turbo Debugger调试的一个快速示例258

12.1 演示程序258

12.2 使用Turbo Debugger259

12.2.1 菜单(The menus)259

12.2.2 状态行(The status line)260

12.2.3 窗口(The windows)260

12.3 使用C演示程序261

12.3.1 设置断点(Setting breakpoints)262

12.3.2 利用监视(Using watches)262

12.3.3 考察简单的C数据对象263

12.3.4 考察复杂的C数据的对象264

12.3.5 改变C数据值265

12.4 使用Pascal示例程序266

12.4.1 设置断点(Setting breakpoints)267

12.4.2 使用监视(Usingwatches)268

12.4.3 考察简单的Pascal数据对象268

12.4.4 考察复杂的Pascal数据对象269

12.4.5 改变Pascal数据值269

13.1.1 准备Turbo C程序272

13.1.2 准备Turbo Pascal程序272

13.1 准备待调试的程序272

第十三章 启动Turbo Debugger272

13.1.3 准备Turbo汇编程序273

13.1.4 准备Microsoft程序273

13.2 运行Turbo Debugger273

13.3 命令行选择项274

13.3.1 装载配置文件(-c)274

13.3.2 显示更新方式(-d)274

13.3.3 获取帮助(-h与-?)274

13.3.4 进程ID转换(-i)274

13.3.5 击键记录(-k)274

13.3.10 源代码处理(-s)275

13.3.9 远程调试(-r)275

13.3.7 设置堆大小(-m)275

13.3.6 汇编模式启动(-l)275

13.3.8 鼠标器支持(-p)275

13.3.11 视频硬件(-v)276

13.3.1.2 覆盖池大小(y)276

13.4 配置文件276

13.5.2 宏菜单277

13.5.2.1 创建(Create)277

13.5.2.2 停止记录(Stop Recording)277

13.5.1 语言命令277

13.5 选项菜单277

13.5.2.3 删除(Remove)278

13.5.2.4 全清(Delete All)278

13.5.3 显示选择命令278

13.5.3.1 显示切换278

13.5.3.2 整数格式278

13.5.3.3 屏幕行数278

13.5.3.4 制表键大小279

13.5.4 源命令路径279

13.5.5 保存选择项命令279

13.7 返回DOS280

13.5.6 恢复选择项命令280

13.6 在Turbo Debugger中运行DOS280

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

附录A TASM命令行参考282

A.1 在DOS中启动Turbo Assembler282

A.2 命令行选择项284

附录B 混合编程实用程序295

B.1 独立的MAKE实用程序295

B.1.1 一个快速示例295

B.1.1.1 创建一个make文件296

B.1.1.2 使用一个make文件297

B.1.1.3 步进298

B.1.2 创建make文件298

B.1.2.1 Make文件的组成298

B.1.3 使用MAKE309

B.1.3.1 命令行语法309

B.1.3.2 中止MAKE的说明310

B.1.3.3 BUILTINS.MAK文件310

B.1.3.4 MAKE是如何查找make文件的310

B.1.4 MAKE出错信息311

B.1.4.1 致命错311

B.1.3.5 TOUCH实用程序311

B.1.3.6 MAKE命令行选择项311

B.1.4.2 一般错312

B.2 Turbo Link313

B.2.1 调用TLINK313

B.2.2 使用应答文件314

B.2.3 TLINK选择项315

B.2.3.1 /x,/m,/s选择项315

B.2.3.4 /n选择项316

B.2.3.5 /c选择项316

B.2.3.3 /i选择项316

B.2.3.2 /l选择项316

B.2.3.6 /d选择项317

B.2.3.7 /e选择项317

B.2.3.8 /t选择项317

B.2.3.9 /v选择项317

B.2.3.10 /s选择项317

B.2.4 一些限制317

B.2.5 出错消息318

B.2.5.1 致命错318

D.2.5.2 非致命错319

B.2.5.3 警告319

B.3.2 TLIB命令行的组成320

B.3 TLIB:Turbo库管理员320

B.3.1 使用目标模块库的优点320

B.3.3 操作表(Operations)321

B.3.4 使用应答文件322

B.3.5 改进的操作:/c选择项322

B.3.6 例子323

B.3.7 创建一扩展词典:/E选择项323

B.4 GREP:一种文件查找实用程序324

B.4.1 GREP选择项324

B.4.2.1 正则表达式中的操作符325

B.4.2 查找串325

B.4.1.1 优先级次序325

B.4.3 文件说明326

B.4.4 带说明的例子326

B.5 OBJXREF:目标模块交叉引用实用程序328

B.5.1 OBJXREF命令行328

B.5.1.1 命令行选择项329

B.5.2 应答文件329

B.5.2.5 /N命令330

B.5.2.3 /D命令330

B.5.2.4 /O命令330

B.5.2.2 连接器应答文件330

B.5.2.1 自由形式的应答文件330

B.5.3 OBJXREF报告样本331

B.5.3.1 按公用名报告(/RP)332

B.5.3.2 按模块报告(/RM)332

B.5.3.3 按引用报告(/RR)(缺省方式)332

B.5.3.4 按外部引用报告(/R X)333

B.5.3.5 按模块长度报告(/RS)333

B.5.3.6 按类报告(/RC)333

B.5.4 使用OBJXREF的例子334

B.5.3.8 冗长报告(/RV)334

B.5.3.7 按未引用符号名报告(/RV)334

B.5.5 OBJXREF出错信息和警告335

B.5.5.1 出错信息335

B.5.5.2 警告335

B.6 TCREF:源模块交叉引用实用程序335

B.6.1 应答文件336

B 6.2 与TLINK的兼容336

B.6.2.1 开关336

B6.2.2 全局(或连接器级)报告336

B6.2.3 局部(或模块级)报告337

参考文献338

1994《微机高级语言与汇编语言接口技术和实例》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由李振格编著 1994 北京:北京航空航天大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

微机高级C语言调试技巧(1991 PDF版)
微机高级C语言调试技巧
1991 北京希望电脑公司
APPLEII BASIC组合语言  接口实验与控制实例( PDF版)
APPLEII BASIC组合语言 接口实验与控制实例
中文Windows 95电脑视窗新概念(1996 PDF版)
中文Windows 95电脑视窗新概念
1996 成都:电子科技大学出版社
计算机语言接口编程与技巧(1995 PDF版)
计算机语言接口编程与技巧
1995 长沙:中南工业大学出版社
用C语言开发微机用户接口技术(1992 PDF版)
用C语言开发微机用户接口技术
1992 中科院希望电脑技术公司
C语言和汇编语言的混合高级编程(1989 PDF版)
C语言和汇编语言的混合高级编程
1989 北京科海培训中心
IBM PC汇编语言程序设计和接口技术(1989 PDF版)
IBM PC汇编语言程序设计和接口技术
1989 西安:西安电子科技大学出版社
微机接口技术(1995 PDF版)
微机接口技术
1995 成都:电子科技大学出版社
微处理机工程用高级语言(1986 PDF版)
微处理机工程用高级语言
1986 北京:科学技术文献出版社
C语言及其高级编程技术(1995 PDF版)
C语言及其高级编程技术
1995 天津:南开大学出版社
高级C语言程序设计技巧与实例(1995 PDF版)
高级C语言程序设计技巧与实例
1995 北京:机械工业出版社
微机原理与汇编语言基础(1997 PDF版)
微机原理与汇编语言基础
1997 北京:高等教育出版社
C语言高级实用编程技巧(1995 PDF版)
C语言高级实用编程技巧
1995 北京:电子工业出版社
微机接口技术(1998 PDF版)
微机接口技术
1998 郑州:黄河水利出版社
微机原理与汇编语言实验指导(1997 PDF版)
微机原理与汇编语言实验指导
1997 北京:电子工业出版社