如何填充阵列,打印并用气泡排序的mips组件对其进行排序



im正在从事作业,要求以下作业。

1)创建一个数组2)保存用户提供的INT(10)3)用逗号打印数字4)用布布排序对它们进行排序并打印它们

这是我的代码,它是前3个步骤,但是在第三步中,我的代码出现了问题,它并不是所有数字,而只是最后一个。

.data
array: .word 0:40
promtp: .asciiz "Give integer: n"
promtp1: .asciiz "Unsorted Array: n"

.text

 jal read
read:
    la $t0, 0   #count variable
    b readLoop

readLoop:
    beq $t0, 40, end   #branch if equal to 40, 10 items
    li $v0, 4       #Print string
    la $a0, promtp       #load prompt
    syscall
    li $v0, 5       #read int
    syscall 
    sw $v0, array       #store input in array ERROR HERE
    addi  $t0, $t0, 4   #add by 4 to counter
    b readLoop
end:
    li $v0, 4       #Print string
    la $a0, promtp1       #load prompt
    syscall
    la $t0, 0
while:
    beq $t0,40,end1
    lw $t6,array($t0)
    li $v0,1
    move $a0,$t6
    syscall
    li $a0, 44
        li $v0, 11
        syscall
    addi $t0, $t0 , 4
    b while
end1:

li $v0, 10
syscall
sw $v0, array       #store input in array ERROR HERE

这将将值存储在寄存器$v0中的位置array

全部。

在内存中的同一位置。

根据数组代码的打印来判断,我认为您可能想在输入循环中进行sw $v0,array($t0),也许?

最新更新