Assembly 接收用户整数,存储,然后打印它MIPS程序集
我可以接受用户输入:Assembly 接收用户整数,存储,然后打印它MIPS程序集,assembly,mips,Assembly,Mips,我可以接受用户输入: addi $v0, $zero, 4 la $a0, str.num2 syscall addi $v0, $zero, 5 syscall add $s1, $zero, $v0 是1美元,我只是不知道怎么打印出来。我怎样才能做到这一点呢?您有MARS中系统调用的参考。接下来,代码应该是: # Print message (syscall 4) addi $v0, $zero, 4 la $a0, str.num2 syscall # Read number (sys
addi $v0, $zero, 4
la $a0, str.num2
syscall
addi $v0, $zero, 5
syscall
add $s1, $zero, $v0
是1美元,我只是不知道怎么打印出来。我怎样才能做到这一点呢?您有MARS中系统调用的参考。接下来,代码应该是:
# Print message (syscall 4)
addi $v0, $zero, 4
la $a0, str.num2
syscall
# Read number (syscall 5)
addi $v0, $zero, 5
syscall
# Print number (syscall 0)
add $a0, $zero, $v0 # Get number read from previous syscall and put it in $a0, argument for next syscall
addi $v0, $zero, 1 # Prepare syscall 0
syscall # System call
始终注释您的代码,特别是如果它是程序集。这些系统调用是什么?SPIM模拟器系统调用?我用MARS来编码,如果这是你的意思的话,谢谢你,伙计,是的,我知道我有,我只是不想把我的信息弄得乱七八糟。很高兴它成功了。评论会让我们更快地了解你在做什么和你想做什么:)好吧,我开始更好地理解这一点。我在这个程序中使用分支,我希望显示的数字以前已经输入并存储在$s1中。如何打印$s1,而不是新输入的整数?抱歉:((我自己一直在玩它——我可以用java编写代码——但我就是不明白这一点。这很正常,汇编与java(一种更高级的语言)无关。)。使用
add$a0,$zero,$s1
而不是add$a0,$zero,$v0
。打印的数字是我之前给你的链接中指定的$a0中的数字。太棒了,它正在工作。非常感谢你的帮助。但是,当我打印数字时,它是(假设数字是134)我真的觉得有必要问所有这些问题,但如果你能回答这个问题,我将永远非常感激