MIPS组装,加入跳转

时间:2015-04-16 12:48:02

标签: assembly mips mips32 pcspim

我的汇编代码出现问题:

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

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

1 个答案:

答案 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