【发布时间】:2009-12-02 03:07:49
【问题描述】:
我正在尝试编写一个 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
【问题讨论】:
-
...有什么问题?它运行吗?它是否给出了预期的输出?如果没有,会发生什么?它输出什么错误信息?您运行的哪些测试用例未产生预期结果?
-
我在大学的一门课程中学习了 MIPS,令人惊讶的是我记得这么少
-
不,它没有运行。似乎我做错了什么。我需要有人看一下,让我知道我的程序出了什么问题...