0

を使用してバイト配列を定義しました

.data
letters  : .byte 0:26   

そして、私はいくつかの質問があります: 1) 配列の最初のセルは使用可能ですか、それとも他の目的に使用されますか? 2) 配列の 6 (たとえば) セルをロードするにはどうすればよいですか?

私は使用することを考えました:

la $t0, letters  # load the array address to $t0
addi $t0, $t0 , 6  # update $t0 in order to get the 6th cell
lb $t1, $t0        # load byte to $t1

この方法は有効ですか、それとも別の方法で行う必要がありますか?

前もって感謝します

4

2 に答える 2

1

1) はい、利用できます。2) C と同様に、最初のセルのオフセットはゼロです。このようにして、実際には 7 番目のセルを指します。

于 2013-01-06T12:38:25.400 に答える
0

コードはほぼ有効です。次のように、間接アドレス指定用の括弧のペアが欠落しているだけです。

lb $t1, ($t0) # load byte to $t1

また、アドレスには定数オフセットを含めることができるため、この場合、それを個別に追加する必要はありません。

lb $t1, 6($t0) # load byte to $t1

これは定数に対してのみ機能することに注意してください。別のレジスタでインデックスを作成する場合は、追加を行う必要があります。

ウラドはすでに他の部分に答えています。

于 2013-01-06T14:49:33.173 に答える