汇编语言是面向机器的语言,它与机器密切相关,具有占用存储空间小,运行速度快,可以直接控制硬件等特点;但是汇编语言程序的编写及调试烦琐,复杂,通用性不好,移植性差,程序员需要熟悉机器的内部结构之后才能编写汇编语言程序。
用高级语言编写城西,不要求程序员熟悉计算机内部的具体构造和机器指令,可以比较方便地设计和实现算法,所以高级语言的应用领域更为广泛。但是高级语言对硬件的直接控制能力却不如汇编语言。
通常在软件的开发过程中,汇编语言与高级语言,或不同高级语言间常常需要通过彼此联系,取长补短,充分利用各种语言提供的不同技术,完成系统的设计和实现。这种组合多种程序设计语言,通过相互调用,参数传递,共享数据结构和数据信息而形成程序的过程就是混合编程。
混合编程中的关键问题是建立不同语言之间的接口,即在不同格式的两种语言间提供有效的通信方式,根据两种语言的调用约定进行某种形式说明,实现两种语言间的程序模块互相调用,变量的相互传送以及参数和返回值的正确使用。
实现汇编语言与C/C++语言的混合程序设计有两种方法:一种方法是,在C/C++语言中直接使用汇编语言语句,即嵌入式汇编,这种方法简洁直观,但功能较弱;另一种方法是,两种语言分别编写独立的程序模块,分别产生目标代码OBJ文件,然后进行连接,形成一个完整的程序,这种方法使用灵活,功能强,但需要解决好混合汇编中的关键问题:不同语言之间的接口。
含嵌入式汇编语句的C++语言程序并不是一个完整的汇编语言程序,所以C++程序只允许有限的