首页 理论教育 用C语言和汇编混合编程实现

用C语言和汇编混合编程实现

时间:2023-06-20 理论教育 版权反馈
【摘要】:C语言和汇编语言的混合编程有以下几种方法:1)独立编写汇编程序和C程序模块,分别汇编形成各自的中间目标代码模块,再将C模块和汇编模块链接起来形成最终代码。下面一起讨论C语言与汇编混合编程的问题。

用C语言和汇编混合编程实现

虽然C编译器的优化功能可以使C代码的效率大大增加,但是在某些特定情况下,C代码的效率还是无法与手工编写的汇编代码的效率相比,毕竟即使是最佳的C编译器,也无法在所有的情况下都能够最佳合理地利用处理器所提供的各种资源;相反,汇编编程方式代码效率高,程序执行速度快,可以充分合理地利用处理器提供的硬件资源,但程序编写比较繁琐,可读性较差,可移植性较差,软件的修改和升级困难。因此在很多特定的情况下,DSP应用程序往往需要用C语言汇编语言的混合编程方法来实现,以达到最佳地利用DSP软硬件资源的目的。

例如:用C语言编写的中断程序,虽然可读性很好,但由于在进入中断程序后有时不管程序中是否用到,中断程序也对寄存器进行保护,从而大大降低中断程序的效率。此外,用C语言实现DSP的某些硬件控制有时也不如汇编程序方便。

C语言和汇编语言的混合编程有以下几种方法:

1)独立编写汇编程序和C程序模块,分别汇编形成各自的中间目标代码模块,再将C模块和汇编模块链接起来形成最终代码。这种方法用户必须自己维护各汇编模块的入口和出口代码,自己计算传递的参数在堆栈中的偏移量,工作量较大,但好处是灵活性较大,能做到对程序的绝对控制。(www.xing528.com)

2)在C程序与汇编程序中相互调用变量和常量。

3)在C程序中直接内嵌汇编语句。此种方法主要是应用在C程序中实现一些硬件控制功能(C语法不好实现的),例如修改中断控制寄存器、中断标志寄存器等。

下面一起讨论C语言与汇编混合编程的问题。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈