2

我目前正在学习如何使用 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 包含用户输入的字符。然后它分支到适当的标签以执行操作。

有没有更简单的方法可以做到这一点,我忽略了?谢谢你的时间。

4

2 回答 2

0

好吧,我设法解决了我自己的问题 XD 解决方案有点原始,但它有效......将操作提示更改为"1 for addition, 2 for subtraction, 3 for multiplication, 4 for division"并将用户输入与那些进行比较,

    beq $t2,1,add
    beq $t2,2,sub
    beq $t2,3,mul
    beq $t2,4,div

剩下的只是操作本身。以为我会把它留在这里,以防其他人遇到类似的问题。也许我会添加内存和清除功能

于 2012-05-13T15:50:50.723 回答
0

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

  li $t5,'a'
  li $t6,'s'
  li $t7,'m'
  li $t8,'d'
于 2012-05-14T12:46:53.787 回答