- 15
- 0
- 约2.39千字
- 约 35页
- 2020-09-02 发布于福建
- 举报
本章要点
混合编程是指使用两种或两种以上的程序设计
语言,通过相互调用、参数传递、共享数据结
构和数据信息而形成程序的过程。采用高级语
言与汇编语言混合编程,从而充分利用各种程
序设计语言各自的优势,即程序的大部分采用
高级语言编写,以提高程序的开发效率;在某
些部分利用汇编语言编写,以提高程序的运行
效率。
Turbo O嵌入汇编方式
Turbo C模块连接方式
汇编语言在ⅥsUC++中的应用
8.1 Turbo c嵌入汇编方式
C语言与汇编语言的混合编程的第一种方法是在C语言
中嵌入汇编语言,又称嵌入式编程。其优点是内嵌的汇编代
码显得更加简洁直观,程序员不用考虑外部链接、命名以及
参数传递协议等问题,主要缺点是代码缺乏可移植性,功能
较弱。此种方法一般只用于需要插入汇编语句较少的情况。
8.1.1嵌入汇编语句格式
在 Turbo c中,C程序中嵌入汇编语言语句必须以关键
字ASM开头,其格式如下
ASM操作码操作数;或回车换行/*注释*
在使用此种格式时,应注意以下几点
(1)ASM作为关键字不能省略,带有ASM标识的汇
编语言代码可以看成是C语言的部分程序代码。当C
语言编译器遇到ASM语句时会识别并自动调用汇编语
言编译程序,将它翻译为机器码再嵌入到C语言程序
之中
(2)操作码可以是处理器指令(如PUSH、MOV等)
也可以是伪指令(如DB、DW、 EXTERN等)。
(3)操作数是操作码可以接受的数据,可以是
指令允许的立即数、寄存器名,也可以是C程序
中的常量、变量和标号
(4)C程序中嵌入的汇编代码后可以有分号也
可以无分号。如果汇编代码后无分号则必须以换
行符结束(嵌入的汇编语句是C语言中唯一可以
以换行结束的语句);如果汇编代码后有分号,
则一行中可以有多条嵌入的汇编语句,但一条汇
编语句不能跨越两行。
(5)嵌入的汇编语句的注释方式必须采用C语言的
注释方式,即必须用“/*”标识注释的开始,用
*/”来标识注释的结束,绝不能像纯汇编那样使
用“;”来作为一条注释的开始。
(6)如果要在C语言程序中嵌入连续多条汇编语句,
可以在每行前面都加上“ASM”关键字,更简单的
办法是输入一个ASM关键字后,使用括号和将
这些汇编语句括起来。
8.1.2汇编语句访问C语言的数据
内嵌的汇编语句除可以使用指令允许的立即数、寄存器名外,
还可以使用C语言程序中的任何符号(标识符),包括变量、常
量、标号、函数名、寄存器变量、函数参数等;C编译程序自动
将它们转换成相应汇编语言指令的操作数,并在标识符名前加下
划线。一般来说,只要汇编语句能够使用存储器操作数(地址操
作数),就可以采用一个C语言程序中的符号:同样,只要汇编
语句可以用寄存器作为合法的操作数,就可以使用一个寄存器变
量
对于具有内嵌汇编语句的C程序,C编译器要调用汇编程序
进行汇编。汇编程序在分析一条嵌入式汇编指令的操作数时,若
遇到了一个标识符,它将在C程序的符号表中搜索该标识符,但
8086寄存器名不在搜索范围之内,而且大小写形式的寄存器名都
可以使用。
在C语言程序中使用嵌入式汇编语句时,还应注意以下几个
问题
(1) Turbo c语言中可以直接使用通用寄存器和段寄存器
只要在寄存器名前加一个下划线就可以了。另外,C语言中
使用S和D指针寄存器作为寄存器变量,利用AX和DX传递返
回参数。
如果C语言函数中没有寄存器说明,嵌入式汇编语句可以自
由地把S、D|用做暂存寄存器:如果C函数有寄存器说明,嵌
入式汇编语句仍可以使用S、D,但最好采用C语言寄存器变
量名形式。嵌入式汇编语句可以任意使用AⅩ/ BX/CX/DX寄
存器,以及它们的8位形式。
(2)内嵌汇编指令可以使用转移指令和L○○P循环指
令,但是它们只能在函数体内有效,不允许进行段间
转移。由于ASM语句中不能给出标号,因而转移指令
只能使用C语言程序中标号(在C语言程序中通常是
定义给GOT○语句使用的)。
(3)行内汇编语句的操作数也可以是C语言结构中的
某个成员(字段),引用方法仍然采用下面的形式:
结构变量名结构成员名
另一种引用方法是把结构变量的首地址送往某一地址
寄存器,然后用该寄存器名(加方括号)再加成员名,
中间用圆点隔开。
8.1.3嵌入汇编的编译过程
C语言程序中含有嵌入式汇编语言语句时,C编译器首先将
C代码的源程序(.c)编译成汇编语言源文件(.sm),然
后调用汇编程序 Turbo assemble将产生的汇编语言源文件
编译成目标文件(。bj),最后调用Tnk程序将目标文件
您可能关注的文档
- 水泥比表表面积试验.ppt
- 水泥搅拌桩简介精编.ppt
- 水泥总平平面布置.ppt
- 水泥工厂煤粉制备系统防火防爆安全的措施的探讨精品.ppt
- 水泥搅拌桩知识识及监理细则.ppt
- 水泥工的业的应用大型高效电袋除尘器分析.ppt
- 水泥工艺基基础知识.ppt
- 水泥水及硬化机理.ppt
- 水泥工厂设巡检培训.ppt
- 水泥混凝土路路面接缝.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)