1

端末から入力できる 10 個の 1 桁の数字 (正、ゼロ、または負) のセットを調べる 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
4

1 に答える 1

1

コードにコメントを入れて、興味のある人が何をしようとしているのかを理解できるようにしてください。

また、上記のコードには、ラベル HR_Negsc と HR_negc への参照があるという点でタイプミスがあります。これにより、「実行されなかった」と言うとき、実際にはリンクしなかったために実行できなかったことを意味していると思います。 !

ステップ 1 - 特に syscalls の周りにコメントを入れます

ステップ 2 - 実際に実行する

ステップ 3 - これでデバッグを開始できます

あなたが見ることができる領域がいくつかあります:

.space が提供するスペースはどれくらいですか?それで十分ですか?

+ve と -ve を評価するために使用している bltu 命令は正しいですか?

あなたのプログラムはどのように終了しますか - 何かが欠けているように見えますか?

後のコメント:

ねえ、あなたの以前の質問の問題の説明から、あなたが書いたコードの一部がこのプロジェクトに残っているのではないかと思います。15と50という数字を指しています。

ご存知のように、あなたがどれだけ知っているか、どれだけ知らないかを推測しなければならないときに、有用なヘルプを提供するのは非常に困難です。質問が詳細になればなるほど、より的確な答えが得られます。そして、その他の質問への答えのアドバイスのいくつかは、明らかにまだ適用されます.

于 2009-12-03T08:03:14.343 に答える