计算小写字母的数量

时间:2014-06-18 14:15:45

标签: mips

所以我创建了这个程序来计算字符串中小写字母的数量。我遇到的问题是,当我到达字符串的末尾并且到达nl字符时,行beq $t0, $t1, end没有被执行;它只是无限期地继续下去。我不确定我做错了什么。

.data
msg1: .word 0:24
.text
.globl main
main:
    addu $s0, $0, $ra
    li $v0, 8
    la $a0, msg1
    la $a1, 100
    syscall
loop:
    lb $t0, 4($a0)
    li $t1, 0x0a
    beq $t0, $t1, end
continue:
    li $t1, 'a'
    blt $t0, $t1, count
    li $t1, 'z'
    bgt $t0, $t1, count     
count:
    addi $t4, $t4, 1
    j loop
end:
    li $v0, 1
    addu $a0, $t2, $0       
    syscall 
    jr $ra

1 个答案:

答案 0 :(得分:1)

您在循环的每次迭代中将4($a0)0x0a进行比较,但是您永远不会在循环中更改$a0,因此您不会通过字符串前进而永远不会查看{ {1}}在字符串的末尾。

您的代码中还有一些其他错误。

在循环开始时使用它:

\n