如何填充数组,打印它并使用冒泡排序 MIPS 程序集对其进行排序
How to fill an array , print it and sort it with bubble sort MIPS assembly
我正在做作业,要求满足以下要求。
1) 创建数组
2) 保存用户提供的整数 (10)
3)用逗号打印数字
4)用buble sort对它们进行排序并打印它们
这是我执行前 3 个步骤的代码,但在第 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)
,也许吧?
我正在做作业,要求满足以下要求。
1) 创建数组 2) 保存用户提供的整数 (10) 3)用逗号打印数字 4)用buble sort对它们进行排序并打印它们
这是我执行前 3 个步骤的代码,但在第 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)
,也许吧?