2013-04-25 162 views
0

我应该为这个问题做些什么,我需要存储这些值,并打印出矩阵,用户要求输入行数,列数和值元素,现在,我甚至不知道如果我没有打印/存储部分的权利,我想打印一个字符串,它是输入,但它不工作MIPS如何存储用户输入并将其打印出来

.text 
    .globl main 

main: 
addi $v0, $0, 4 
la $a0, str1 
syscall    #printing str1 
addi $v0, $0, 5 
syscall 
la $t1, M1_1 
sw $v0, 0($t1)  #reading and storing the number of rows 

addi $v0, $0, 4 
la $a0, str2 
syscall    #printing str2 
addi $v0, $0, 5 
syscall 
la $t2, M1_2 
sw $v0, 0($t2)  #reading and storing the number of columns 

addi $v0, $0, 4 
la $a0, str3 
syscall    #printing str3 
addi $v0, $0, 5 
syscall 
la $t3, M1_3 
sw $v0, 0($t3)  #reading and storing the value of element 


    .data 


str1:.asciiz "\“Please enter the number of rows in the matrix\n" 
str2:.asciiz "\“Please enter the number of columns\n" 
str3:.asciiz "\“Please enter the elements of the matrix\n" 
.align 2 
M1:.space 256 
M1_1:.space 4 
M1_2:.space 4 
M1_3:.space 4 
M2:.space 256 
M2_2:.space 4 
+2

你有任何调试器或模拟器来尝试你的代码吗? – 2013-04-25 04:41:30

回答

2

单步执行代码之后在SPIM中,行sw $v0, 0($t1)似乎是一个问题。而不是使用sw将输入移动到寄存器$t0,我会建议使用move命令。在下面的代码示例中,我修改了代码,演示如何可以节省你的输入接收的值到寄存器$t0

.text 
    .globl main 

main: 
    sub   $sp , $sp , 4   # push stack 
    sw   $ra , 0 ($sp)  # save return address 

    addi  $v0 , $0 , 4 
    la   $a0 , str1 
    syscall  #printing str1 

    addi  $v0 , $0 , 5 
    syscall  #get input 

    move  $t0 , $v0    # save input in $t0 
    move  $a0 , $v0 
    addi  $v0 , $0 , 1 
    syscall  #print first input 

    ... 

有关如何使用每个MIPS指令,view this page更多信息。

相关问题