图1
图2
问题描述:
在rules.mk文件中调用row_mips.o目标文件,而使用g++编译器时,row_mipscc文件时,在内嵌的MIPS汇编语言代码中,出现无效的操作数。在存储器和寄存器之间的数据传输出现问题。
原因分析:
在row_mips.cc的源代码文件中,在gcc的内置宏里错误配置了错误的宏变量,当row_mips.cc中条件编译根据内置宏变量执行汇编语言MIPS时出错。
解决方法:
使用下面命令搜索相应的gcc的内置宏,然后在row.h头文件中修改相应的宏参数。
gcc -E -dM -
小知识
MIPS汇编语言:
lw:
从存储器读取一个字的数据到寄存器中
sw:
将一个字的数据从寄存器传输到存储器中