2

我想将字符串的第一个字符与“#”字符进行比较。如果这些相等,我想在 mips 中打印“它们相等”。为此,我编写了一段代码如下。但是,即使它们相等,它也不会给我一个输出。有没有人可以帮助我?提前致谢。

.data 
input:          .space 201
string2:    .asciiz "they're equal.\n"
finish:         .byte '#'
.text
main:
        la $a0,input
        li $a1,201          #read 200 char 
        li $v0,8            #read string
        syscall 

        jal evaluate

evaluate:
        lw $t1, 0($a0)
        lw $t2,finish
        beq $t1,$t2,testi

testi:
        la $a0,string2
        li $v0,4
        syscall

        li $v0, 10
        syscall
4

1 回答 1

1

是的,您已经以这样一种方式放置分支,即无论是否采用分支,下一条指令都是相同的。

考虑将其更改为以下内容:

evaluate:

        lw $t1, 0($a0)
        lw $t2,finish
        bne $t1,$t2,testi

        la $a0,string2
        li $v0,4
        syscall

test1:
        li $v0, 10
        syscall
于 2013-11-03T19:48:37.653 回答