[求助] 430单片机c语言与汇编内联

zilong1013   2015-7-21 17:22 楼主
为提高单片机抗干扰能力,我要在C语言中嵌入汇编语言的软件陷阱,我用的是MSP430F6436的,其程序存储区起始地址是08000H,我是这么写在未使用的中断服务程序中的,但编译提示错误Error[Og010]: Inline assembler instruction does not have a unique size: "        JMP 0X08000"      不知是什么原因?求教高手。
源程序部分如下:
#pragma vector=TIMERA0_VECTOR                                                           
__interrupt void Timer_A(void)               
{
  asm("NOP");
  asm("NOP");
  asm("JMP 0X0C000");                    
}
上面是第一个问题
第二个问题:在IAR中写的程序,仿真时候看到程序存储器里面不是按照IAR的程序顺序存储的,是什么原因?是不是因为IAR编译器优化的原因呢?
希望各位大神多多指教。不胜感激!!!

回复评论 (2)

由于JMP的寻址空间是以PC为基准的1K范围,容易超出寻址范围,而BR指令的寻址空间是64K,可以到任何地址,你用asm("br &0X0C000");试下
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2015-7-21 22:46
编译过了 !!!!
点赞  2015-7-27 18:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复