C语言和汇编语言混合编程.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言和汇编语言混合编程.doc》由会员分享,可在线阅读,更多相关《C语言和汇编语言混合编程.doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C/C+语言和汇编语言混合编程开发为了充分利用DSP芯片的硬件资源,更好发挥C/C+语言和汇编语言进行软件开发的各自优点,可以将两者有机的结合起来,兼顾两者优点,避免其弊端。因此,在很多情况下,采用混合编程方法能更好地达到设计要求,完成设计任务。C/C+语言和汇编语言混合编程的具体方法有以下几种:(1)独立编写C/C+程序和汇编程序,分开编译或汇编形成各自的目标模块,再用链接器将C/C+模块和汇编模块链接起来,这是一种灵活性较大的方法。但用户必须自己维护各汇编模块的入口和出口代码,自己计算传递参数在堆栈中的偏移量,工作量稍大,但能做到对程序的绝对控制,也能满足软件设计结构化的要求。这是主要讲述
2、的方法。(2)在C/C+程序中使用汇编程序中定义的变量和常量。(3)在C/C+程序中直接内嵌汇编语句。这种方法可以在C/C+程序中实现C/C+语言无法实现的硬件控制功能,如修改中断控制寄存器、中断标志寄存器等。(4)在C/C+源程序中使用内部函数直接调用汇编语言语句。后3种方法由于在C/C+语言中直接嵌入了汇编语言的成分,容易造成程序混乱,C/C+环境被破坏,甚至导致程序崩溃,而编程者又很难对不良结果进行预期和有效控制。而如果采用第一种方法,只要遵循有关C/C+语言函数调用规则和寄存器规则,就能预见到程序运行的结果,保证程序正确。下面分别讲述函数调用规则和寄存器规则。1. 函数调用规则C/C+
3、编译器对函数调用强加了一组严格的原则。除了特殊的运行时间支持库函数外,任何调用函数和被C/C函数调用的函数都必须遵守这些原则。不遵守这些原则可能破坏C/C+环境并导致程序失败。图1说明了典型的函数调用。在这个例子中,参数被传递到堆栈中调用者的参数块,函数再使用这些参数调用被调用函数。注意,第一个参数是在A累加器中传递的。这个例子还说明了汇编器对被调用函数的局部帧的分配。局部帧包括局部变量块和局部参数块两部分,其中局部参数块是局部帧中用来传递参数到其他函数的部分。如果被调用函数没有局部变量并且不再调用其他函数或需要调用的函数没有参数,则不分配局部帧。对于混合编程而言,由于被调用函数是手工编写的汇
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 汇编语言 混合 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内