用的是HC908SR12芯片,
JCR已经在main()内定义且赋值,
我用正常的方法建立一个项目后已经包含了所需的头文件,将上述内容替换main( )进行编译可以正常通过。
如果去掉语句屏蔽 // ,启用JMP TAB,X; BSR TAB_END ;语句 即出现加色文字的现象,一句一句去掉 // 也同样出错。
主要问题是 JMP TAB,X ; 语句不能使用,如果改成 JMP TAB ;编译也能通过,说明汇编对TAB标号是认可的。
C内嵌汇编好像不能对X寄存器进行操作,但是 LDX JCR 语句又编译正常且能正确运行,很是奇怪。
如果方便,请编译一下即可知道具体出错提示与帮助,本人英语能力无法理解。
谢谢guantingwei。
[此贴子已经被作者于2006-5-23 20:56:52编辑过]
因switch 指令操作周期太长,欲在C中内嵌汇编根据JCR的值进行不同的操作。
以下测试程序CW31,CW50编译始终通不过,求助高手帮助。
void main(void)
{
char JCR=0;
loop:
asm
{
LDX JCR
LDA #$3
MUL
TAX
// JMP TAB,X ;取消//,启用该句编译后出错。
TAB:
NOP
// BSR TAB_END ;取消//,启用该句编译后告警。
NOP
// BSR TAB_END ;取消//,启用该句编译后告警。
NOP
// BSR TAB_END ;取消//,启用该句编译后告警。
TAB_END:
// INC JCR; ;取消//,启用该句编译通过,但仿真时不是对JCR的+1操作。
}
++JCR;
goto loop;
}
[此贴子已经被作者于2006-5-23 21:07:40编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |