为什么我的数组比较没有在MIPS中打印?

为什么我的数组比较没有在MIPS中打印?,mips,Mips,下面是我的代码,它计算两个数组的总和,然后将它们打印到控制台的消息中。现在,我想比较两个数组和,并根据哪个数组更大返回正确的消息提示。我觉得我非常接近,因为我试图遵循第一个打印语句的逻辑,但是如何比较寄存器$s7和$s8,然后通过我设置的消息提示符声明一个较大的数组?我正在使用这个模拟器: .data x:单词1,2,3,4,5,6,7,8,9,10 迭代器:。字0 大小:。字9 提示:.asciiz“数组的总和等于:” .文本 主要内容: la$s0,提示 洛杉矶$t0,x lw$t1,迭代器

下面是我的代码,它计算两个数组的总和,然后将它们打印到控制台的消息中。现在,我想比较两个数组和,并根据哪个数组更大返回正确的消息提示。我觉得我非常接近,因为我试图遵循第一个打印语句的逻辑,但是如何比较寄存器$s7和$s8,然后通过我设置的消息提示符声明一个较大的数组?我正在使用这个模拟器:

.data
x:单词1,2,3,4,5,6,7,8,9,10
迭代器:。字0
大小:。字9
提示:.asciiz“数组的总和等于:”
.文本
主要内容:
la$s0,提示
洛杉矶$t0,x
lw$t1,迭代器
lw$t2,尺码
开始循环:
bgt$t1,$t2,退出_循环
sll$t3、$t1、2
加成$t3、$t3、$t0
lw$t6,0($t3)
附加$s7、$s7、$t6
附加$t1,$t1,1
j开始循环
退出循环:
李$v0,4
la$a0,提示
系统调用
李$v0,1
la$a0,($s7)
系统调用
.数据
x2:单词5,6,7,8,9,10,11,12,13,14
迭代器2:。字0
大小2:。单词9
prompt2:.asciiz“数组2的总和等于:”
prompt3:.asciiz“较大的数组是数组1”
提示4:.asciiz“较大的数组是数组2”
.文本
主要内容2:
洛杉矶$s0,提示2
洛杉矶$t0,x2
lw$t1,迭代器2
lw$t2,尺码2
开始循环2:
bgt$t1,$t2,退出_循环2
sll$t3、$t1、2
加成$t3、$t3、$t0
lw$t6,0($t3)
加成$s8、$s8、$t6
附加$t1,$t1,1
j begin_循环2
出口2:
李$v0,4
洛杉矶$a0,提示2
系统调用
李$v0,1
la$a0,($s8)
系统调用
slt$t1、$s7、$s8#检查$s0是否大于$s1
beq$t1,1,prompt3#如果$s7>s8,则转到prompt3
beq$t1,$零,提示4#如果$s8<$s7,则转到提示4
李$v0,4
洛杉矶$a0,提示3
系统调用
李$v0,4
洛杉矶$a0,提示4
系统调用

b
(beq,…)“分支”指向代码中的一个位置标签。标签提示3是什么?要跳转到acsii字符串并开始执行吗?我已更新了代码,以便prompt3和prompt4位于prompt2下代码的正确.data区域下。现在我认为第56行和第57行需要引用新的标签(我没有),以便它们跳转到正确的输出点。这些新标签应该更改,这相当简单,但是如何以及在何处声明这些新标签呢?
.data

x:          .word 1,2,3,4,5,6,7,8,9,10
iterator:   .word 0
size:       .word 9

prompt:     .asciiz "The total sum of the array is equal to: "

.text
main:

la $s0, prompt
la $t0, x
lw $t1, iterator
lw $t2, size

begin_loop:
bgt $t1, $t2, exit_loop

sll $t3, $t1, 2

addu $t3, $t3, $t0

lw $t6, 0($t3)

addu $s7, $s7, $t6

addi $t1, $t1, 1

j begin_loop

exit_loop:

li $v0, 4
la $a0, prompt
syscall

li $v0, 1
la $a0, ($s7)
syscall

.data

x2:         .word 5,6,7,8,9,10,11,12,13,14
iterator2:  .word 0
size2:      .word 9

prompt2:        .asciiz "The total sum of array 2 is equal to: "
prompt3:        .asciiz "The larger array is array 1"
prompt4:        .asciiz "The larger array is array 2"

.text
main2:

la $s0, prompt2
la $t0, x2
lw $t1, iterator2
lw $t2, size2

begin_loop2:
bgt $t1, $t2, exit_loop2

sll $t3, $t1, 2

addu $t3, $t3, $t0

lw $t6, 0($t3)

addu $s8, $s8, $t6

addi $t1, $t1, 1

j begin_loop2

exit_loop2:

li $v0, 4
la $a0, prompt2
syscall

li $v0, 1
la $a0, ($s8)
syscall
slt $t1,$s7,$s8      # checks if $s0 > $s1
beq $t1,1,prompt3     # if $s7 > $s8, goes to prompt3
beq $t1,$zero,prompt4 # if $s8 < $s7, goes to prompt4
li $v0, 4
la $a0, prompt3
syscall
li $v0, 4
la $a0, prompt4
syscall