导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:关于混和编程,有点问题,请高手指教![wutao_xf]

 *第8306篇: C51编程:关于混和编程,有点问题,请高手指教!

  
楼 主:wutao_xf 2003年2月19日18:36
 C51编程:关于混和编程,有点问题,请高手指教!
主程序是用汇编语言写的,子程序用c语言写的,编译之后,老是出现地址覆盖问题:
子程序的code地址总是从0000h开始,与主程序产生冲突。请问如何解决??谢谢!!
  
2楼:tm1300 2003年2月19日19:10
 那肯定不行的
 即使是汇编,主程序开始地址也必须大于等于0030H的(前面定义中断向量);
对于汇编嵌套C需要的端口地址分配形式,C51是很明确的(可以查)。一般子程序是
使用指针来改变参数的;也有一种简单的使用方式,在子程序中将修改
值存放于DATA区,主程序查询。建议你查查资料,反正很难用一两句话解释的清楚。
  
3楼:tm1300 2003年2月19日22:24
 如果你有《电子技术应用》第27卷
2001年7月刊,有简单的运用例子。
  
4楼:wutao_xf 2003年2月20日09:17
 你的意思我明白,但是
楼上的兄弟,你讲的是传递参数的问题,我觉得第二种方式比较方便,我平时采用这种方
案。我主要的问题是:c语言下编的子程序编译之后地址老是从0000h开始,与汇编下的地址
冲突,我用的编译环境是omf51,我对c51 *.C  ******后面的参数不太熟,通过修改后面的
参数,老是出问题,谢谢指教!!
  
5楼:tm1300 2003年2月20日10:13
 所以嘛
其实我也问过这个问题,我当时是问编译器的问题,因为不同的编译器可能支持的方式不
同,甚至不支持。
  
6楼:wutao_xf 2003年2月25日17:10
 有可能吧!!
我用的是 microtek    EASYPACK/E 8052F! 我再用别的试试吧,谢谢啦!!

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:L32Ks仿真器损坏

[下一篇主题]:C51编程:(附源码和电路图)采用实时时钟芯片DS1302+AT89C2051的红外遥控LED电子钟