CW6.1 C中嵌套的ASM怎樣調用C定義的變量

[复制链接]
3163|1
 楼主| zhuocong 发表于 2009-2-17 12:56 | 显示全部楼层 |阅读模式
cw, TI, ST, ic, TE
在ASM中調用C定義的變量的時候,CW6.1會報錯。<br />C18700:&nbsp;Unknown&nbsp;Opcode&nbsp;Operand&nbsp;Combination:&nbsp;Opc.:&ltInstr&gt/Dest.:&ltmode&gt/Source:&ltmode&gt.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;byte&nbsp;j;<br />&nbsp;&nbsp;&nbsp;&nbsp;j=23;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__asm<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />會報C18700錯誤。<br /><br />下面的用LDA&nbsp;就沒有錯誤。<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;byte&nbsp;j;<br />&nbsp;&nbsp;&nbsp;&nbsp;j=23;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;__asm<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />請問這是為什麽?要怎樣調用C中定義的變量,謝謝!
 楼主| zhuocong 发表于 2009-3-21 17:11 | 显示全部楼层

自己顶一个

LDA支持直接寻址和扩展寻址,而CLR只支持直接寻址,所以当地址大于0xFF的时候就会有问题。<br />有两种办法解决这个问题:<br />1,将地址定位到0x100以下。<br />2,在CLR前加上LDHX,改变bank。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

26

帖子

1

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