2011-08-09 13 views
0

私の課題を解決することができません。ここでは、それは述べて何ラベルの住所を計算する

はMIPSアセンブリ言語コードの次のコードを考えてみましょう。

start: add $t1, $t2, $t3 
     addi $t1, $t1, 10 
     add $t4, $t2, $t2 
     add $t6, $t3, $t3 
     beq $t1, $t4, q_final 
middle: add $t1, $0, $0 
     bne $t6, $t4, s_final 
     add $t7, $t7, $t7 
j final 
q_final: slt $t1, $t4, $t6 
s_final: add $t7, $t7, $t1 
final: jr $ra 

a)のラベル開始値100小数 で(すべての数字を持っている場合表記法)では、ラベルmiddle、q_final と最後で指定されたアドレスは何ですか? 私は進め方と混同しています。私は、各ステートメントに4を加えると、他のラベルの価値が得られると考えていました。これを行うもう一つの良い方法がありますか?

ありがとうございます。

答えて

1

私は進め方と混同しています。私はそれぞれのステートメントに に4を加えると、他のラベルの値が得られると考えていました。これを行うもう1つの良い方法がありますか?

より簡単です(mips!)。各命令が4バイトを要するならば、それはそれ以上のものになります。

100:  add $t1, $t2, $t3 
104:  addi $t1, $t1, 10 
108:  add $t4, $t2, $t2 
112:  add $t6, $t3, $t3 
116:  beq $t1, $t4, 132 
120:  add $t1, $0, $0 
124:  bne $t6, $t4, 136 
128:  add $t7, $t7, $t7 

132:  slt $t1, $t4, $t6 
136:  add $t7, $t7, $t1 
140:  jr $ra 

ところで、誰が10進表記でメモリアドレスを与えるのですか?

+0

私は実際に私が混乱した理由です。私はこれらが実際に住所か他の何かであるかどうか疑問に思いました。 –

+0

イェップ、ラベルは単なるメモリアドレスです。 – Tom

+0

ラベルを追加しなかった理由を詳しく教えてください。 –

関連する問題