9

私はアセンブリ言語に非常に慣れていません。私はMIPSアーキテクチャについて読んでいて、 Register Format(R-Format)の最後のフィールドで立ち往生しています。これがその視覚的表現 ここに画像の説明を入力してください です。6番目のフィールドの意味と計算方法を教えてください。前もって感謝します。

4

2 に答える 2

9

説明にあるように、すべての R タイプの命令 (例: ADDANDSLLおよびその他) は最上位 6 ビット (= op) が 0 に設定されています。つまり、それらを区別する唯一の方法は、最下位 6 ビット (=機能)。つまり、命令タイプを決定します。おそらく例が役立つでしょう:

ADD $1, $2, $3 

もっている:

op = 0 (as all R-type instructions)
rs = 2
rt = 3
rd = 1
shamt = 0
funct = 0x20 = 0b00000100000 = 32

したがって、エンコーディングは次のようになります。

0000 0000 0100 0011 0000 1000 0010 0000

たとえばXOR(別の R タイプ) 命令の場合、関数は0b100110 = 0x26 = 38. したがって、エンコードしたい命令を調べて「計算」します。

( MIPS 命令リファレンスから取得)。

于 2011-08-03T16:09:17.040 に答える
1

次の表から:

http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes

ほとんどすべての R タイプ命令のオペコードは 00 であるため、関数は ALU 関数を選択します。

Funct オペコードを共有する命令の場合、関数パラメーターには、異なる命令を区別するために必要な制御コードが含まれます。6 ビット長 (0 ~ 5)。例: オペコード 0x00 は ALU にアクセスし、関数は使用する ALU 関数を選択します。

于 2011-08-03T16:08:06.527 に答える