我的汇编代码出现问题:
# Program testing
.text
.globl main
main: ori $4,$0,1
addiu $4,$4,2
addiu $8,$10,4
addiu $2,$1,1
addiu $3,$1,1
addiu $5,$1,1
j main+8 #ERROR HERE
sll $0,$0,0
# End of file
我想加入我的跳跃。我的教授说这会有效,但我不断收到解析器错误
我在PCSPIM中的MIPS设置是:
检查裸机,延迟分支和延迟负载。
有谁知道出了什么问题?是否存在单词对齐问题?
答案 0 :(得分:1)
这里没有单词对齐问题。
您的问题是您使用的汇编程序没有将label+displacement
解释为目标地址。
由于每条指令占用4个字节,您实际上是在 main 标签之前跳过两条指令。因此,只需添加一个新标签即可实际定位跳跃。
即:
# Program testing
.text
.globl main
main: ori $4,$0,1
addiu $4,$4,2
jump_target:
addiu $8,$10,4
addiu $2,$1,1
addiu $3,$1,1
addiu $5,$1,1
j jump_target # main+8
sll $0,$0,0
# End of file