打印

PICC语言和汇编混编的问题

[复制链接]
1729|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cjzdtchh|  楼主 | 2013-8-26 08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟我刚参与单片机开发的工作,想用C语言做主体。汇编编写一段函数模块。为什么我用的HI-TECH编译器按照C语言里混编汇编的
#asm
……
#endasm这样编写,其他地方都是按照C语言那样来的,编译各种通不过,似乎这段汇编编译器根本不认。哪位大神帮帮我啊,万分感谢
沙发
yewuyi| | 2013-8-26 11:26 | 只看该作者
你要搞清楚:编译通不过是不识别宏指令还是内部的汇编代码通不过编译。

区别的最简单办法就是在宏指令内部就放一个空指令,然后编译看看是否能通过,如果能通过,那你就要检查其内部的那些汇编代码了。

使用特权

评论回复
板凳
cjzdtchh|  楼主 | 2013-8-26 11:59 | 只看该作者
yewuyi 发表于 2013-8-26 11:26
你要搞清楚:编译通不过是不识别宏指令还是内部的汇编代码通不过编译。

区别的最简单办法就是在宏指令内部 ...

编译显示内部汇编寄存器都没定义。我的指令都是很基本的一些。是不是头文件的问题?我用的<pic.h>

使用特权

评论回复
地板
yewuyi| | 2013-8-26 12:23 | 只看该作者
cjzdtchh 发表于 2013-8-26 11:59
编译显示内部汇编寄存器都没定义。我的指令都是很基本的一些。是不是头文件的问题?我用的 ...

在代码中引用的所有符号都应该有其定义,并且还应该当告诉编译器在何处能联系上这个定义。

这是写汇编或者C语言代码的基本要求,这样的问题还有什么问题可问呢?


如果这些最基本东西都还没弄清楚,则不建议你动手写代码。

使用特权

评论回复
5
cjzdtchh|  楼主 | 2013-8-26 13:07 | 只看该作者
yewuyi 发表于 2013-8-26 12:23
在代码中引用的所有符号都应该有其定义,并且还应该当告诉编译器在何处能联系上这个定义。

这是写汇编或 ...

也许不是头文件问题。我讲错了。我是说怎么定义变量啊。我要在最开始定义一个char  num1; 然后再汇编里往num1写立即数编译就不通过了。这个应该在C里面怎么定义啊。编译以后就说我没定义汇编里面用到的变量

使用特权

评论回复
6
cjzdtchh|  楼主 | 2013-8-26 13:23 | 只看该作者
原来要加下划线啊!!!

使用特权

评论回复
7
yewuyi| | 2013-8-26 13:40 | 只看该作者
cjzdtchh 发表于 2013-8-26 13:23
原来要加下划线啊!!!

在C中定义的变量,在ASM中调用,一般加下划线后可以直接调用.


不建议在C中嵌入太多的C指令.

使用特权

评论回复
8
cjzdtchh|  楼主 | 2013-8-26 14:09 | 只看该作者
yewuyi 发表于 2013-8-26 13:40
在C中定义的变量,在ASM中调用,一般加下划线后可以直接调用.

多谢

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝