用MIPS制作计算器?

用MIPS制作计算器?,mips,calculator,Mips,Calculator,我目前正在学习如何使用MIPS和QTSPIM模拟器进行编码。我认为制作一个简单的算术计算器是一个很好的实践,所以我开始编码。 到目前为止,程序要求输入一个数字,读取数字,要求进行操作。用户必须输入操作符号+、-、*、/或首字母a、s、m、d。下一步是将接收到的输入与。。。 这是我一直在做的部分。 我的第一个想法是有4个已经包含字符的寄存器,所以我尝试了 li $t5,a li $t6,s li $t7,m li $t8,d 然而,这只是给了我一个语法错误。我尝试

我目前正在学习如何使用MIPS和QTSPIM模拟器进行编码。我认为制作一个简单的算术计算器是一个很好的实践,所以我开始编码。 到目前为止,程序要求输入一个数字,读取数字,要求进行操作。用户必须输入操作符号+、-、*、/或首字母a、s、m、d。下一步是将接收到的输入与。。。 这是我一直在做的部分。 我的第一个想法是有4个已经包含字符的寄存器,所以我尝试了

    li $t5,a
    li $t6,s
    li $t7,m
    li $t8,d
然而,这只是给了我一个语法错误。我尝试了其他两种类似的方法,但总是出错。 我的目标是将用户输入与这4个寄存器进行比较,然后继续操作

    beq $t2,$t5,add
    beq $t2,$t6,sub
    beq $t2,$t7,mul
    beq $t2,$t8,div
其中$t2包含用户输入的字符。然后,它分支到相应的标签以执行该操作

有没有一种我忽略的更简单的方法?
谢谢你的时间。

嗯,我设法解决了我自己的问题XD 这个解决方案有点原始,但它是有效的。。。 将操作提示更改为1表示加法,2表示减法,3表示乘法,4表示除法,并将用户输入与之进行比较

    beq $t2,1,add
    beq $t2,2,sub
    beq $t2,3,mul
    beq $t2,4,div
剩下的只是操作本身。 我想我会把这个留在这里,以防其他人遇到类似的问题。
也许我会添加内存和清除函数

嗯,我设法解决了我自己的问题XD 这个解决方案有点原始,但它是有效的。。。 将操作提示更改为1表示加法,2表示减法,3表示乘法,4表示除法,并将用户输入与之进行比较

    beq $t2,1,add
    beq $t2,2,sub
    beq $t2,3,mul
    beq $t2,4,div
剩下的只是操作本身。 我想我会把这个留在这里,以防其他人遇到类似的问题。
也许我会添加内存和清除函数

要用ASCII码设置寄存器,需要用单引号括起来。 在你的例子中是

  li $t5,'a'
  li $t6,'s'
  li $t7,'m'
  li $t8,'d'

要使用ASCII码设置寄存器,需要用单引号将其括起来。 在你的例子中是

  li $t5,'a'
  li $t6,'s'
  li $t7,'m'
  li $t8,'d'

+1.努力尝试某事:-。虽然我从未接触过MIP汇编程序,但很抱歉无法回答。看一看这个关于MIPS汇编程序的讲座,看看它是否有用:谢谢!它确实有帮助:我设法解决了我的问题,但我在接下来的几个小时内无法回答我自己的问题。xD我将发布解决方案,以防其他人遇到这个问题。+1尝试一些困难:-。虽然我从未接触过MIP汇编程序,但很抱歉无法回答。看一看这个关于MIPS汇编程序的讲座,看看它是否有用:谢谢!它确实有帮助:我设法解决了我的问题,但我在接下来的几个小时内无法回答我自己的问题。xD我会发布解决方案,以防其他人遇到这个问题。嗯,我可以发誓我尝试了,但仍然出现了错误。。。也许我在某处犯了个错误。。。我来看看,再试一次。谢谢。嗯,我发誓我试过了,但还是出错了。。。也许我在某处犯了个错误。。。我来看看,再试一次。谢谢