我想在Centos7中使用gcc生成MIPS二进制文件。我已经成功安装了binutils和gcc。
我用于交叉编译的命令行:
mips-mti-elf-gcc -o exception.o exception.c
然后出现的错误就像:
/tmp/ccFbK9Ow.s: Assembler messages:
/tmp/ccFbK9Ow.s:123: Error: invalid operands addiu $8,$sp,'
这就是问题界线
/* exception function arguments */
" srl $4, $9, 2 \n" /* adjust cause arg */
" move $5, $8 \n" /* execution pointer */
" mfc0 $6, $8 \n" /* bad address if any */
" addiu $7, $sp, 0 \n" /* register table on stack */
" addiu $8, $sp, \n" /* stack pointer */
" sw $8, 4*4($sp) \n"
" la $1, interrupt_ex_handler \n"
" jalr $1 \n"
" j return \n"
我在哪儿?
答案 0 :(得分:2)
程序集无效。这条线;
addiu $7, $sp, 0
看起来不错。
addiu $8, $sp,
在逗号后面缺少最后一个操作数。我猜它应该是;
addiu $8, $sp, 0
从您的问题中不清楚有问题的程序集是否嵌入在C文件中,或者是否由编译器生成 - 我假设前者。如果没有,它可能有助于发布一个显示问题的最小示例C文件。