2017-01-26 16 views
0

MIPSのlaluioriに分割されていますが、これらの命令の引数は何ですか?la命令はどのようにMIPSで翻訳されていますか?

私はこの質問をここではMIPS Pseudo istructions, replacementsに見ましたが、結果としてluiは常に4097を使用しますか?

は、次のことを考えてみましょう:

 .data 
_a: .space 4 
     .text 
main: la  $s0,_a 

んこれに翻訳され得ることを?

lui $at,4097 
ori $s0,$at,0 

ありがとうございます!

答えて

0

luiはアドレスの上位16ビットをロードし、oriはアドレスの下位16ビットをロードします。アドレスは32ビットの任意の値にすることができるので、通常luiは4097をロードしません。

1

4097小数点は0x1001です。これは0x10010000の上位16ビットです。

これはmarsシミュレータの.dataセグメントの開始のデフォルトのロードアドレスです。

la $s0,mainを実行した場合、.textのデフォルト開始アドレスは0x00400000であるため、luilui $at,0x0040となります。

 .data 
_a: .space 100000 
_b: .space 4 
     .text 
main: la  $s0,_b 

違いを確認するには、このプログラムを試してみてください

関連する問題