永发信息网

MSP430如何在C语言中嵌入汇编指令来设置软件陷阱?

答案:3  悬赏:20  手机版
解决时间 2021-12-23 15:35
  • 提问者网友:山高云阔
  • 2021-12-22 22:19
为提高单片机抗干扰能力,我要在C语言中嵌入汇编语言的软件陷阱,我用的是MSP430F135的,其程序存储区起始地址是0C000H,我是这么写在未使用的中断服务程序中的,但编译提示错误Error[Og010]: Inline assembler instruction does not have a unique size: " JMP 0x0C000" 不知是什么原因?求教高手。
源程序部分如下:
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
asm("NOP");
asm("NOP");
asm("JMP 0x0C000");
}
最佳答案
  • 五星知识达人网友:詩光轨車
  • 2021-12-22 23:45
C语言内嵌入汇编:
_asm
{
pushad
...
...
popad
}
将汇编写入花括号内

不过看你的程序介绍,如果我没理解错的话是要用汇编跳到别的地址,是这样的话要注意堆栈平衡。
编译器错误提示的意思是你这个跳转有二义性,尝试加上段寄存器或在你跳转的目的地址处加一个标签lable,,把jmp 0x0c000换成jmp lable
全部回答
  • 1楼网友:上分大魔王
  • 2021-12-23 01:54
需要帮你写程序吗
  • 2楼网友:千杯敬自由
  • 2021-12-23 00:15
使用asm("汇编指令");这种格式即可。 比如在C函数中执行:asm("nop");asm("nop");asm("LJMP START"); START定义为程序入口地址。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯