微机高级语言与汇编语言接口技术和实例PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:李振格编著
- 出 版 社:北京:北京航空航天大学出版社
- 出版年份:1994
- ISBN:7810124919
- 页数:338 页
第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 C 50
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 Pascal 102
3.2 嵌入指令 104
3.3 外部过程 105
3.3.1 外部函数 105
3.3.2 使用全程数据和过程 107
3.3.3 使用Turbo Assembler 109
3.5 使用TurboDebugger 112
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 ABSOLUTE 196
6.5.2.2 到内存不定位置作CALL ABSOLUTE 196
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 Prolog 210
第八章 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 Prolog 230
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/3 250
11.1.1 system/1 250
11.1 访问DOS 250
第十一章 Turbo Prolog与DOS系统级的接口 250
11.1.3 envsymbol/2 251
11.1.4 date/3和time/4 252
11.1.5 comline/1 252
11.2 访问硬件:低级支撑 253
11.2.1 bios/3和bios/4 253
11.2.2 ptr-dword/3 254
11.2.3 membyte/3和memword/3 254
11.3 例子: 255
11.2.4 port-byte/2 255
第五部分 混合编程程序的调试 258
第十二章 Turbo Debugger调试的一个快速示例 258
12.1 演示程序 258
12.2 使用Turbo Debugger 259
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 Debugger 272
13.1.3 准备Turbo汇编程序 273
13.1.4 准备Microsoft程序 273
13.2 运行Turbo Debugger 273
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 返回DOS 280
13.5.6 恢复选择项命令 280
13.6 在Turbo Debugger中运行DOS 280
第六部分 混合编程的参考资料 282
附录A TASM命令行参考 282
A.1 在DOS中启动Turbo Assembler 282
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 使用MAKE 309
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 Link 313
B.2.1 调用TLINK 313
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
- 《莼江曲谱 2 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《莼江曲谱 1 中国昆曲博物馆藏稀见昆剧手抄曲谱汇编之一》郭腊梅主编;孙伊婷副主编;孙文明,孙伊婷编委;中国昆曲博物馆编 2018
- 《近代体育游戏教育史料汇编 第1辑 1》王强主编 2016
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《近代体育游戏教育史料汇编 第2辑 2》王强主编 2016
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《CINEMA 4D新手快速进阶实例教学 商迪》商迪 2020
- 《近代体育游戏教育史料汇编 第1辑 6》王强主编 2016
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019