0
我应该存储10个记录的数组,每个记录有一个名称(40个字符),年龄和工资。在一个数组中存储记录与mips
我已经做了一个循环来存储用户输入和另一个循环打印出来,但我的输出显示了不同的东西。我不确定我是否正确存储记录?请咨询。
这是我的输出。为了测试我只有3条记录。
There are 10 records.
first employee
23
20
second employee
34
20
third employee
25
23
third employee
23
20
23
20
23
20
-- program is finished running --
我的代码是这样的:
loop:
bgt $t0, $a2, print #counter = size go to print
#store name
li $v0, 40
li $v0, 8
syscall
#reads and store the age
li $v0, 5
syscall
sb $v0, 40($a1)
#reads and stores the salary
li $v0, 5
syscall
sb $v0, 44($a1)
addi $t0, $t0, 1 #up counter
addiu $a1, $a1, 12 #shift to the next value? may be error here
b loop
print:
beqz $t0, end #counter = 0; end
li $v0, 4
la $a1, Records
syscall #print name
li $v0, 1
lb $t1, 40($a1)
move $a0, $t1
syscall #print age
la $a0, newline
li $v0, 4
syscall #newline
li $v0, 1
lb $t1, 44($a1)
move $a0, $t1
syscall #print salary
la $a0, newline
li $v0, 4
syscall
addi $t0, $t0, -1 #decrement
addiu $a1, $a1, 12
b print