我正在尝试编写一个 MIPS 程序,该程序将检查可以从终端输入的十个单个数字(正数、零或负数)的集合。检查数字后,只需将负数(带有适当符号)及其计数输出到终端。
下面是我的 MIPS 程序
.data
prompt: .asciiz "Input Score: "
.align 2
HR_Neg: .asciiz "\n negative Scores: "
.align 2
HR_Pos: .asciiz "\n positive Scores: "
.align 2
HR_Negsc: .asciiz "\n Number of Negative Scores: "
.align 2
HR_Posc: .asciiz "\n Number of positive Scores: "
.align 2
HR_coma: .asciiz ", "
.align 2
HR_brk: .asciiz "\n\n"
.align 2
NEg: .space 10
.align 2
Pos: .space 10
.align 2
.globl main
.text
main:
li $t0, 0
la $t1, Neg
li $t2, 0
la $t3, pos
li $t4, 0
li $t5, 0
li $t6, 0
loop:
li $v0, 4
la $a0, prompt
syscall
li $v0, 5
syscall
bltu $v0, 50, else
sw $v0, 0($t1)
addi $t1, $t1, 4
addi $t0, $t0, 1
b l_end
else:
sw $v0, 0($t3)
addi $t3, $t3, 4
addi $t2, $t2, 1
l_end:
addi $t4, $t4, 1
bltu $t4, 15, loop
#output counts
li $v0, 4
la $a0, HR_negc
syscall
la $v0, 1
add $a0, $t0, 0
syscall
li $v0, 4
la $a0, HR_posc
syscall
la $v0, 1
add $a0, $t2, 0
syscall
#output neg scores
li $v0, 4
la $a0, HR_neg
syscall
la $t1, Neg
lw $a0, 0($t1)
li $v0, 1