【发布时间】:2017-08-02 12:43:36
【问题描述】:
我正在参加一门大学课程,该课程根据规范尝试遵循“计算机架构一种定量方法”一书。
我们的任务是在 MIPS 中编写一个插入排序,但我不知道应该如何调试我的代码甚至编译它。学校网页指向书中的gcc-mips-elf和MipsIt。
问题是我使用的是 arch 而不是 debian,所以 gcc-mips-elf 不可用,MipsIt 需要模拟器,所以我决定使用我在 arch 数据库中找到的本机模拟器 QtSpim。
但是当我尝试从课程网页执行模板时,spim 会抛出错误:syntax error on line 17 ... .word 5, 3, 4, 1, 2
#define t0 $8
#define t1 $9
#define t2 $10
#define t3 $11
#define t4 $12
#define s0 $16
#define s1 $17
#define s2 $18
#define s3 $19
.globl field
.data
.align 2
field:
.word 5,3,4,1,2
.text
.globl start
.ent start
start:
// your code goes here
nop
.end start
【问题讨论】:
-
该代码似乎是用 GNU 汇编器编写的。它与 SPIM 不兼容。
.word指令不是问题,并且不会导致我在 Windows 上使用 QtSpim 时出现语法错误。但是,据我所知,所有这些#define行都将被 SPIM 视为 cmets,.end和.ent对 SPIM 没有任何意义,并且 SPIM 程序需要有一个main标签。 -
如果你想使用 MIPS 程序集(而不是 x86),看看 MARS (courses.missouristate.edu/KenVollmar/mars),我发现它比 SPIM 更容易使用。
-
如果您想学习计算机体系结构而不是学习使用工具,只需在推荐的发行版上运行推荐的工具。