您好!
我正在尝试弄清楚如何在中指定 clobber 寄存器
内联汇编代码段。 以下代码:
void foo (void) { __ASM__ volatile ( "MOV.b R9、R10" : : :“R10” ); }
…μ A 编译良好、可以使用我的提供的 gcc-msp430封装
分发(Ubuntu 16.04)、即使用以下命令:
msp430-gcc -c -mmcu=msp430f1611 foo.c
但是、当我尝试使用 TI 的编译器执行以下命令时:
$INSTALL_DIR/MSP430-gcc/bin/MSP430-elf-gcc -c -mmcu=msp430f1611 -L$INSTALL_DIR/MSP430-gcc/support-files/include/-i$INSTALL_DIR/msp430-gcc/support-files/include/foo.c -T msp430f1611.ld
我得到以下错误:
foo.c:在函数'foo'中: foo.c:5:5:错误:'asm'中未知的寄存器名称'r10' __ASM__ volatile ( ^~~~~~~μ A foo.c:5:5:错误:'ASM'中的未知寄存器名称'R9'
我出了什么问题? 我是否错过了文档中的内容
解释了为什么这些寄存器不能在 clobber 子句中使用?
提前感谢您的帮助。