0

我的汇编代码有问题:

# 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 设置是:
在裸机上检查、延迟分支和延迟加载。

有谁知道出了什么问题?是否存在单词对齐问题?

4

1 回答 1

1

这里没有单词对齐问题。您的问题是您使用的汇编程序没有解释label+displacement为目标地址。

由于每条指令占用 4 个字节,您实际上是在尝试在标签之前跳转两条指令。因此,只需在您真正定位跳跃的地方添加一个新标签。

IE:

# 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
于 2015-04-16T12:55:55.147 回答