2015-03-02 59 views
-1

所以我写了一个简单的程序在MIPS程序集中用于我的comp arch类。我们现在需要增强这个程序,以便它有两个参数。如果参数都相同,那么答案应该与只有一个参数的原始程序的答案相同。如果它们不同,那么你应该根据上述内容来确定你的程序应该做什么。尽量做出尽可能少的改变。增强程序以允许它从键盘接收两个参数并将结果显示在SPIM的控制台窗口中。如果任何输入参数是负数(小于零),则增强的程序应该在控制台中显示一个零。如何在MIPS程序集中添加参数?

这里是未增强的部分我的代码:

.data 
arg: .word 5 

.text 
.globl main 
main: 

la $t3, arg  
lw $t2, 0($t3) 
lw $t3, 0($t3) 

addi $t1, $zero, 0 
beqz $t2, fin   
fori: 

add $t1, $t1, $t2 
addi $t3, $t3, -1 

bnez $t3, fori  

fin: 

li $v0, 10 
syscall 
+0

好的,如果任何人都可以帮助那会很棒。我知道如何创建一个论点。我只是这样做:arg1:.word 5和arg2:.word 5.但我怎样才能得到这个键盘输入? – 2015-03-02 21:58:26

+0

https://www.doc.ic.ac.uk/lab/secondyear/spim/node8.html。 – markgz 2015-03-02 22:28:18

+0

mark gz我还是输了,你能帮忙还是找个类似的例子? – 2015-03-03 03:41:00

回答

0

这里的代码,从键盘读取一个整数并将其存储在arg1

 .data 
    arg1: .word 0 
     .text 
     li $v0, 5  # system call code for read int 
     syscall   # read the int 
     la $t0, arg1 
     sw $v0, 0($t0) # store the integer at location arg1 
+0

谢谢!所以我现在得到如何读写整数到控制台,但我很困惑如何将该实现添加到现有的程序。任何指针或建议? – 2015-03-05 06:03:30