0

演習用の Web サイトを使用して MIPS アセンブリを学習しています。

演習 2

各レジスタ $1 から $7 で、対応するビットを設定します。つまり、レジスタ 1 でビット 1 を設定し (残りを 0 にクリア)、$2 でビット 2 を設定し (残りを 0 にクリア)、というように続きます。プログラムで ori 命令を 1 つだけ使用して、レジスタ $1 のビットを設定します。'ori $1,$0,0x01' で開始します。これ以外の ori 命令を使用しないでください。注: レジスタのビット 1 は右から 2 番目で、(符号なしバイナリで) 2 の 1 乗に対応します。

誰かがこれを説明できますか?

レジスタ 1 に 0x02 を入れるのは正しいですか? (oriが使えないので、左シフトで0x01を0x02にする)

これにより、レジスタ 1 == 10 (バイナリ) が作成されます。したがって、レジスタ 1 の最初のビットは 1 で、他のビットは 0 ですか?

MIPS シミュレーターが先頭のゼロを表示しないため、混乱しています。したがって、これを正しく行っているかどうかはわかりません。

4

1 に答える 1

0

はい、あなたの解釈は正しいです。

ori $1,$0,0x01  # Initialize $1
sll $2,$1,2     # Set bit 2 or $2
sll $3,$1,3     # Set bit 3 of $3
...             # ..and so on for $4..$7
sll $1,$1,1     # Finally set bit 1 of $1

または代わりに:

ori $1,$0,0x01
sll $1,$1,1
sll $2,$1,1
sll $3,$2,1
...
于 2013-02-28T15:17:29.907 に答える