MIPS .word澄清

时间:2012-03-13 23:18:39

标签: word mips

如果我写

.data                        
 one:   .word 1

以后我的程序中写了

beq $a3,one,loop1
它会起作用吗? ie beq late标签作为参数?

3 个答案:

答案 0 :(得分:1)

没有。您必须先将单词加载到寄存器中:lw $t0, one

MIPS是一种加载/存储架构。从内存中获取值的唯一方法是使用加载指令。

答案 1 :(得分:1)

使用beq $a3, 1, basecase 完全错误。它碰巧适合你,因为寄存器1($ at)碰巧等于寄存器$ a3。这种共同发生并不太令人惊讶,因为MIPS汇编程序将$at用作临时寄存器。

beq指令的二进制编码使用:位31:26作为操作码(000100);第25:21位为第一个寄存器号;位20:16为第二个寄存器号;位15:0表示地址偏移量。此指令没有直接值的规定。

答案 2 :(得分:0)

实际上,我最终这样做了:

beq $a3, 1, basecase    #check if value at $a3 is equal to 1

这种语法也有效。不一定要有2个寄存器。