【发布时间】:2015-10-15 15:10:26
【问题描述】:
我正在尝试制作一个简单的 MIPS 程序。我想检查用户输入的字符是否是空格。我在.data 部分中定义了一个变量space。然后我接受用户输入,并使用jal 调用我的函数,该函数应该检查这一点。我将字节space 加载到$a0 中,然后想检查$t0 和$a0 是否相同。如果他们不是$t1 应该设置为1 然后我使用分支不等于分支到我的另一个函数,它打印出对用户的响应。但是,无论我输入什么字符,它总是分支。我不确定我做错了什么。
space: .byte ' '
main:
#Getting user input
li $v0,8
la $a0,str1
li $a1, 20
syscall
jal is_space
#Indicate the end of main function
li $v0,10
syscall
is_space:
add $t0, $a0, $zero
lb $a0, space
sltu $t1, $a0, $t0
bne $t1, $zero, spaceinput
【问题讨论】:
-
我假设您的
syscall是 SPIM 使用的那种:syscall和$v0 == 8读取一个 字符串。如果要比较该字符串的一个字节,则需要将其加载到寄存器中。