Board logo

标题: FLASH编程c语言嵌入汇编不能通过…… [打印本页]

作者: chenwenxin    时间: 2007-1-29 08:56     标题: FLASH编程c语言嵌入汇编不能通过……

unsigned int pbase
asm("sthx pbase");

CW编译为什么上面的语句通不过呢?请高手指点,谢谢!
作者: seuafu2005    时间: 2007-1-29 09:56

不知道你用的是什么编译环境

这个里面有几个问题,一般嵌入汇编,用 asm ();的方式,不带引号。不过这个和编译工具有关。

另外,你用汇编调入pbase数据,必须给汇编中声明一下pbase
现在pbase只是在c中声明了而已。

可以参考一下这个帖子,关于c和汇编共用常量的问题
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=101651&ID=101651
作者: chenwenxin    时间: 2007-1-29 12:38

我用的CW08 V3.1,只有C语言的源文件,没有汇编源文件,仅仅是在C语言的源文件中嵌入一段汇编而已,还需要用汇编声明吗?如果需要声明,应该如何声明呢?
作者: seuafu2005    时间: 2007-1-29 15:04

这样的话应该没有问题
你的pbase定义在和汇编语句同一个c文件中就可以了
直接引用 asm ldhx pbase;就可以了
作者: strongchen    时间: 2007-1-29 15:38

我想这是CodeWarrior的一个bug。现在暂时可以用以下的代码来替代:

asm{
STX pbase;
PSHH
PULX
STX pbase:1
}
作者: chenwenxin    时间: 2007-1-29 18:30

多谢各位高手。

上面的问题一直很奇怪:
asm ldhx pbase;可以通过编译,但是
asm sthx pbase;却不能通过编译

只能用
asm{
STX pbase;
PSHH
PULX
STX pbase:1
}
来代替,就OK了,多谢!
作者: strongchen    时间: 2007-1-30 10:04

各位可以到飞思卡尔网站上下载补丁和升级软件,只是现在网络速度还是很慢:(

http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=0127260061788213CF151B




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0