访问字符串的第一个字符并将其与char MIPS进行比较

时间:2013-11-02 14:16:08

标签: mips system-calls string-comparison

我想将字符串的第一个字符与'#'char进行比较。如果它们相等,我想用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

1 个答案:

答案 0 :(得分: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