打印

CCS中嵌入BRA指令为什么编译不通过

[复制链接]
1483|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
dirtwillfly| | 2015-2-12 13:44 | 只看该作者
你用BRAX试试,BRA好像只能跳转到不超过0xFFFF的地址

使用特权

评论回复
板凳
johdon23|  楼主 | 2015-2-13 09:45 | 只看该作者
本帖最后由 johdon23 于 2015-2-13 10:01 编辑

更正一下:
     现在的现象应该是:编译没有报错,但是无法生成.out文件。  换成BRAX语句,现象一样!
     但是删除这条汇编语句之后,能够正常生成.out文件;
     并且如果我将汇编语句改成__asm("nop");,也能编译通过并生成.out文件。
     说明__asm()的写法没有错误,应该是BRA或BRAX这条语句不对!
  

使用特权

评论回复
地板
dirtwillfly| | 2015-2-13 22:02 | 只看该作者
奇怪的问题

有没有可能是:BRA #20266,这句引起的,或者是#20266存储的内容引起的?

使用特权

评论回复
5
johdon23|  楼主 | 2015-2-25 09:02 | 只看该作者
问题是为什么 BRA #20266 就不对呢?
正确的写法到底是啥啊?

使用特权

评论回复
6
dirtwillfly| | 2015-2-26 20:47 | 只看该作者
johdon23 发表于 2015-2-25 09:02
问题是为什么 BRA #20266 就不对呢?
正确的写法到底是啥啊?

编译时有什么错误提示?

使用特权

评论回复
7
johdon23|  楼主 | 2015-2-28 13:36 | 只看该作者
错误提示如附件所示

Error.png (19.54 KB )

Error.png

使用特权

评论回复
8
johdon23|  楼主 | 2015-3-2 11:39 | 只看该作者
问题已经找到了!
应该写成 __asm(" BRA #20266");
即在BRA指令前至少要有一个空格!
在MSP430汇编指令的手册中有如下规定:
“A mnemonic cannot begin in column 1 or it will be interpreted as a label. Mnemonic opcodes and assembler directive names without the . prefix are valid label names. Remember to always use whitespace before the mnemonic, or the assembler will think the identifier is a new label definition.

再次感谢大家的热心回复!

使用特权

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

本版积分规则

34

主题

71

帖子

0

粉丝