• ベストアンサー

TEST命令はどんなことするの?

アセンブラ言語の命令(オペコード)の一つに「TEST命令」というのがあるのですが、この「TEST命令」というのはどんなことをするのですか? ネットで検索したら「論理積をするもの」と書かれていたのですが命令の一つである「AND命令」とはどう違うのでしょうか? わかりやすく教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

and ax,bx だと、  ax=ax&bx; フラグ変化 test ax,bx だと、  null=ax&bx; フラグ変化 の違いなので、オペ1を破壊するかどうかの違いなので、 test ax,ax なら、and でも or でも、構わない感じで。 xorだと、常に0になるので、0代入でも使えます。

その他の回答 (1)

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.1

TEST命令は、ANDと同じだが、オペランド1が変化しない。 https://plaza.rakuten.co.jp/u703331/diary/200808250000/

関連するQ&A

  • x86・x64系でのアセンブラで頻出する主な命令

    以前の質問と重複しますが・・・ アセンブラ言語に関して(「x86系」「x64系」のもの)、ネットで検索すると命令の種類が沢山ありすぎて、全て覚えるのが大変で、しかも、どの命令が良く頻出するのかよくわからないので、よく頻出する基本的な命令(オペコード等)の種類を教えてください。 特に「x86系」「x64系」等でよく頻出する基本的な命令(オペコード等)の種類を教えてください。 よろしくお願いします。

  • LEA命令についてわかりやすく

    アセンブラ言語の命令(オペコード)の一つに「LEA命令」というのがあるのですが この「LEA命令」というのはどんなことをするのですか? イメージが全然湧きません。 わかりやすく教えてください。できればわかりやすい「例え」で教えてくれたほうが幸いです。 よろしくお願いいたします。

  • NOP命令のオペランドは無し?

    アセンブラ言語の命令文である「NOP命令」は「何もしない」という命令がありますが、「オペランド(値)」はそれ自体ない命令(オペコード)なんでしょうか? わかりやすく教えてください。 よろしくお願いいたします。

  • 逆アセンブラでよく使われる主な命令の種類について

    逆アセンブラとかでよく使われる主な命令の種類を挙げてください。 ネットで検索すると命令の種類が沢山ありすぎて、全て覚えるのが大変で、かつ、どの命令が良く使うものなのかわからないので、よく使われる主要なもののみの命令(オペコード等)の種類を教えてください。 よろしくお願いします。

  • CASL アセンブラ命令 アプリ機能

    例えば、CASLのアセンブラ命令にDCがある。 LABER DC 100 とすると。 これは、メモリに領域を確保し100をいれる命令だが、プログラムが変更されれば、メモリアドレスは変更される。 CASLには機械語命令・マクロ命令・アセンブラ命令がある。 機械語命令は人に分かりやすいようにニーモニックが付けられているだけだが、 アセンブラ命令はプログラムが変更されればそのアドレスは移動するという、ハンドアセンブリでは、できない機能が含まれている。 アセンブリ言語は色々ありますが、アセンブラ言語は人に見やすいようにニーモニックが付けられているだけでなく、CASLのDC命令のように、ハンドアセンブリではできないアドレスの自動変更のようなアプリケーションとしての機能(OS的機能)も一般にふくまれているとかんがえてよいのでしょうか? よろしく願います。

  • 機械語の命令について

    例えばアセンブラでいうところの LD xxxx という命令は、 「xxxx番地のデータをレジスタに記憶する。」 らしいのですが、LDという命令もアドレスxxxxも2進数 で表現されていますか? そうだとして、どんな論理回路で、最終的にレジスタの電圧が1になるのでしょうか^-^? よろしくお願いします。

  • アセンブラの擬似命令について

    kigin と申します。 アセンブラの擬似命令に「align」というものがありますがこれは一体どういう意味なのでしょうか? また、アセンブラの擬似命令やアセンブラプログラミングに関して詳しいガイダンス的な紹介がなされているホームページ等がありましたら、教えていただきたいのですが。 よろしくお願いいたします。

  • アセンブラ言語がわかりません。

    初心者です。まとを得ていない質問でしたらすみません。 C言語は理解できる程度なのですが、アセンブラのコードを書く事ができません。 今アセンブラ言語を学び始めた所ですが、「jr」「jarl」「jmp」などの分岐命令の指定の方法がわかりません。 C言語でいうとどういうコードを書いた時に、このような命令を出力できますでしょうか。 本を読んでも、この上記の命令の意味は書いてあるのですが、実際出力が出来なかったもので。 またアセンブラ言語を学ぶためにいい方法などありましたらお教えく頂けないでしょうか。 よろしくお願いします。

  • 命令網羅率の計算問題です

    図1のような論理構造をテストするテストケースとして表に3つのテストケースを示す。 これらのケースをすべてテストした場合の命令網羅率は何%になるか。 答えは70%なんですが、計算式がわかりません。 宜しくお願いします。

  • ジャンプ命令について

    一つ教えて頂きたいことがあるのですが本で読んで気づいてのですがMSーDOSでジャンプ命令で例えばアセンブラなのですがjmp2000:000で2000の部分がMS-DOSが勝手に書き換えてしまうというとことなんですがこの勝手にとは何を基準に書き換えてるのでしょうか?拙いですが分かる方 いらしたらご教授よろしくお願いします。 環境はMS-DOSです。