PICC语言和汇编混编的问题

[复制链接]
 楼主| 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语言代码的基本要求,这样的问题还有什么问题可问呢?


如果这些最基本东西都还没弄清楚,则不建议你动手写代码。
 楼主| cjzdtchh 发表于 2013-8-26 13:07 | 显示全部楼层
yewuyi 发表于 2013-8-26 12:23
在代码中引用的所有符号都应该有其定义,并且还应该当告诉编译器在何处能联系上这个定义。

这是写汇编或 ...

也许不是头文件问题。我讲错了。我是说怎么定义变量啊。我要在最开始定义一个char  num1; 然后再汇编里往num1写立即数编译就不通过了。这个应该在C里面怎么定义啊。编译以后就说我没定义汇编里面用到的变量
 楼主| cjzdtchh 发表于 2013-8-26 13:23 | 显示全部楼层
原来要加下划线啊!!!
yewuyi 发表于 2013-8-26 13:40 | 显示全部楼层
cjzdtchh 发表于 2013-8-26 13:23
原来要加下划线啊!!!

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


不建议在C中嵌入太多的C指令.
 楼主| cjzdtchh 发表于 2013-8-26 14:09 | 显示全部楼层
yewuyi 发表于 2013-8-26 13:40
在C中定义的变量,在ASM中调用,一般加下划线后可以直接调用.

多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部