我目前正在学习如何使用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包含用户输入的字符。然后分支到适当的标签以执行操作。
有一种更简单的方法可以做到这一点,我忽略了吗? 谢谢你的时间。
答案 0 :(得分: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
其余的只是操作本身。 我以为我会留下这个以防万一其他人遇到类似的问题。 也许我会添加内存和清除功能
答案 1 :(得分:0)
要使用ASCII代码设置寄存器,需要用单引号将其括起来。 在你的例子中,它将是
li $t5,'a'
li $t6,'s'
li $t7,'m'
li $t8,'d'