位置:51电子网 » 技术资料 » D S P

混合编程形式

发布时间:2016/7/14 20:15:49 访问次数:571

   混合编程主要有C51内嵌汇编代码和C51调用汇编函数两种形式。

   因为Keil是应用非常普遍的编译软件,下面就EPL2014-332MLC以实际操作为例进行说明。要实现在C51函 数中直接加汇编代码,需要注意以下几个方面。

   ①将要嵌入的汇编语句以如下方式加入:

   #pragma AsM

   ;Asscmblcr Codc Hcrc

   #pragma ENDAsM

   ②在P咱ect窗口中右击包含汇编代码的C文件,选择“options for。¨”选项,然后单击右边的“Generate Asselubler sRC∏lc”禾口“Assclublc sRCFile”选项,使选择框由灰色变成黑色状态。

   表6.9 库文件和编译模式的选择表

    没有浮点运箅的sm删modd

   C51C LIB

    没有浮点运算的Compact modd

    C51L LIB

   没有浮点运算的Large mode1

   C51FPs LIB

   带浮点运算的small modd

   C51FPC LIB

   带浮点运算的Conlpact modd

   C51FPL LIB

   带浮点运算的Largc modcl

   ③根据选择的编译模式,把Kcil\C51XLib\路径下相应的库文件加入工程中,若未添加此库文件,则会提示“tINmBOLVED EXTERNAL SYMBOL”警告。具体库文件和编译模式的选择见表6.9。

   通过以上三步设置,即可编译生成目标代码。

   注意事项:

   ①在汇编语言中可以加标签以执行跳转指令,但标签不要与编译器产生的其他标签相同;

   ②在遵循了C51参数的调用规则后,当要传递char参数时,编译器会将其编译成通过R7传递,此时若在汇编语言中直接调用R7,会出现定义的变量(形参)未调用警告。

 


   混合编程主要有C51内嵌汇编代码和C51调用汇编函数两种形式。

   因为Keil是应用非常普遍的编译软件,下面就EPL2014-332MLC以实际操作为例进行说明。要实现在C51函 数中直接加汇编代码,需要注意以下几个方面。

   ①将要嵌入的汇编语句以如下方式加入:

   #pragma AsM

   ;Asscmblcr Codc Hcrc

   #pragma ENDAsM

   ②在P咱ect窗口中右击包含汇编代码的C文件,选择“options for。¨”选项,然后单击右边的“Generate Asselubler sRC∏lc”禾口“Assclublc sRCFile”选项,使选择框由灰色变成黑色状态。

   表6.9 库文件和编译模式的选择表

    没有浮点运箅的sm删modd

   C51C LIB

    没有浮点运算的Compact modd

    C51L LIB

   没有浮点运算的Large mode1

   C51FPs LIB

   带浮点运算的small modd

   C51FPC LIB

   带浮点运算的Conlpact modd

   C51FPL LIB

   带浮点运算的Largc modcl

   ③根据选择的编译模式,把Kcil\C51XLib\路径下相应的库文件加入工程中,若未添加此库文件,则会提示“tINmBOLVED EXTERNAL SYMBOL”警告。具体库文件和编译模式的选择见表6.9。

   通过以上三步设置,即可编译生成目标代码。

   注意事项:

   ①在汇编语言中可以加标签以执行跳转指令,但标签不要与编译器产生的其他标签相同;

   ②在遵循了C51参数的调用规则后,当要传递char参数时,编译器会将其编译成通过R7传递,此时若在汇编语言中直接调用R7,会出现定义的变量(形参)未调用警告。

 


相关技术资料
7-14混合编程形式

热门点击

 

推荐技术资料

业余条件下PCM2702
    PGM2702采用SSOP28封装,引脚小而密,EP3... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!