打印

关于c51与汇编的 混合编程问题

[复制链接]
1426|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wolf_heart|  楼主 | 2007-1-26 13:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
兄弟在一个中断处理程序中嵌入一段汇编代码,发现能够进入汇编,并且汇编代码执行无误,但是当执行到汇编代码结束时,程序没有跳出汇编代码段,而是又跑到了汇编代码段开始处执行,就这样在汇编代码段中做死循环,请教各位大家,有什么解决的方法?另外,如果是在非中断处理程序中插入同样的代码就没有以上问题。

相关帖子

沙发
lixun00| | 2007-1-26 14:52 | 只看该作者

是不是中断标志没有清楚或外部中断产生的太频繁

使用特权

评论回复
板凳
wolf_heart|  楼主 | 2007-1-26 17:29 | 只看该作者

楼上误解我的意思了

我在这里做示意流程:
void fun(void) interrupt * using 0 //c code
{
   ***** //c code
   ***** //c code
   #pragma ASM
   ***** // asm code
   #pragma ENDASM
   ****** //c code
}
执行的结果是能够进入汇编代码,但是却无法从汇编代码中返回,即无法执行到#pragma ENDASM后面的c语句

使用特权

评论回复
地板
lixun00| | 2007-1-26 18:13 | 只看该作者

你把对应的编译库加到最后看看,估计和这没关系

使用特权

评论回复
5
wolf_heart|  楼主 | 2007-1-28 15:42 | 只看该作者

什么编译库?

我查看过编译后生成的汇编码(c代码也撞成了汇编),没有问题,但是执行就是有问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

337

帖子

0

粉丝