1

MIPS 命令を作成するためにクロスコンパイラをセットアップしました。

また、C コードを適切にコンパイルします。

しかし、NOT 操作で奇妙なことがわかりました。

次のようなコードを作成すると

   int a;
   func(!a);

そして、「MIPS は NOT 演算を 'nor with zero' に変換する」という教科書で MIPS 命令を勉強しました。

だから私はそれが次のように変換されると思った

 nor a a $zero

しかし、私のコンパイラは変換します

xori a a 0x0
sltu a 1

////////////////////////////////////// 私は 'myaccount>> mipsel-でコードをコンパイルしましたunknown-linux-gnu-gcc -S myfilename.c' と入力すると、myfilename.s ファイルが作成されます。

私は何が欠けていますか??

4

1 に答える 1

1

「ない」操作を混乱させています。「nor with 0」演算は~a(1 の補数) であり、書き込み中!a(オペランドが 0 の場合は 1、それ以外の場合は 0 を返します) です。

于 2010-03-30T02:06:57.413 に答える