2017-10-26 16 views
0

私のコードは、フィボナッチシリーズを出力するためにユーザから値nを受け入れるべきです。コードは4以上では動作しません。 FIBシリーズは、0から始めるようにまた、どのように私は、コードを修正すれば、次のようにユーザ入力4フィボナッチジェネレータをMIPSアセンブリ言語でデバッグする方法はありますか?

ここ

がコードであれば、コードのない1.出力がする必要があります

.data 
string:.asciiz "Enter N: " # space to insert between numbers 
space:.asciiz " " # space to insert between numbers 
.text 

la $a0, string 
li $v0, 4 
syscall # print the string 

li $v0,5 #read inetger in $t0 
syscall 
move $t0,$zero 
addi $t0,$v0,-1 
move $t1,$zero 
addi $t1,$t1,1 

move $s0,$zero 
addi $s0,$s0,1 


move $a0,$s0 
li $v0, 1 # $integer to print 

syscall 


la $a0, space 
li $v0, 4 
syscall # print the string 


loop: 

move $a0,$s0 
li $v0, 1 # $integer to print 
syscall 


la $a0, space 
li $v0, 4 
syscall # print the string 

addi $t0,$t0,-1 
beq $t0,$zero,stop 

add $s0,$s0,$t1 

sub $t1,$a0,$t1 

j loop 

stop: 
li $v0, 10 # system call for exit 
syscall # Exit! 

答えて

0

アルゴリズムを正しく実装していません。 (「デバッグする方法あなたのタイトルから質問について

int prev2 = 0, prev1 = 1; 
for (int n = 0; n < input; ++n) { 
    int fn = prev1 + prev2; 
    printf("%d ", prev2); 
    prev2 = prev1; 
    prev1 = fn; 
} 

int prev1 = 1, fn = 1; 
for (int n = 0; n < input; ++n) { 
    printf("%d ", fn); 
    fn += prev1; 
    prev1 = &space - prev1; 
} 

しかし、あなたがやるべきことは多くのようなものです:あなたが書いたことは、このような何かに変換しますか? "):SPIM(とその変種)とMARSの両方が、多くのデバッグ機能を提供します。
コードビュー、データビュー、およびビューアビューアがあります。
コードをシングルステップ実行することができます(通常はF10を使用しますが、異なるシミュレータ間で異なる場合があります)。また、特に関心のあるコード位置にブレークポイントを設定します。

関連する問題