位置:51电子网 » 技术资料 » 存 储 器

C51函数参数传递和返回

发布时间:2016/7/14 20:13:25 访问次数:2653

   在C51函数和汇编函数相互调用时经常要进行参数传递,常用的参数传递方式有寄存器传EPL2014-301MLC递和固定存储器位置传递两种方式。

   寄存器参数传递:寄存器参数传递指参数通过寄存器R1~R7来传递的,这种形式可产生高效的代码,利用51单片机的工作寄存器最多传递3个参数,具体对应传递方式见表6,7。

   表6,7 寄存器参数传递对应的寄存器

  

   固定存储位置参数传递:当无寄存器可用或是采用了编译控制指令“NOREGPARN【s”,则参数的传递将发生在固定的存储器区域,该存储器区域称为参数传递段,其地址空间取决于编译时所选择的存储器模式。在sMALL模式下参数传递在内部RAM中完成,在CoMPACT和LARGER模式下参数传递要在外部RAM中完成。

   Fun1(int忄a是第一个参数,在R6,R7中传递。

   Fu砣(int b,int c,int苄d):b在R6,R7中传递,c在M,R5中传递,fd则在R1,V,R3中传递。混合编程有时还要进行参数返回,在函数或子程序返回时,.依据返回数据的类型不同有较大的差别。

 

   在C51函数和汇编函数相互调用时经常要进行参数传递,常用的参数传递方式有寄存器传EPL2014-301MLC递和固定存储器位置传递两种方式。

   寄存器参数传递:寄存器参数传递指参数通过寄存器R1~R7来传递的,这种形式可产生高效的代码,利用51单片机的工作寄存器最多传递3个参数,具体对应传递方式见表6,7。

   表6,7 寄存器参数传递对应的寄存器

  

   固定存储位置参数传递:当无寄存器可用或是采用了编译控制指令“NOREGPARN【s”,则参数的传递将发生在固定的存储器区域,该存储器区域称为参数传递段,其地址空间取决于编译时所选择的存储器模式。在sMALL模式下参数传递在内部RAM中完成,在CoMPACT和LARGER模式下参数传递要在外部RAM中完成。

   Fun1(int忄a是第一个参数,在R6,R7中传递。

   Fu砣(int b,int c,int苄d):b在R6,R7中传递,c在M,R5中传递,fd则在R1,V,R3中传递。混合编程有时还要进行参数返回,在函数或子程序返回时,.依据返回数据的类型不同有较大的差别。

 

上一篇:C51函数名的转换

上一篇:混合编程形式

相关技术资料
7-14C51函数参数传递和返回

热门点击

 

推荐技术资料

循线机器人是机器人入门和
    循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!