アセンブリ命令と命令セットアーキテクチャの違いとは?
- アセンブリ命令と命令セットはほぼ同じ言葉であり、プロセッサの内部動作を詳しく解析する際に重要な概念です。
- 命令セットアーキテクチャは、プロセッサ内部の仕様であり、特定の命令セットに基づいてプロセッサが動作するしくみを規定します。
- ジャンプ命令を例にとると、命令セットアーキテクチャはプログラムカウンタのデータを変えるしくみを規定しています。
- ベストアンサー
アセンブリ命令、命令セットアーキテクチャ等の用語
ソフトウェア中心の技術者です。 コンパイラからアセンブリ言語を吐き出させ、そこからプロセッサ内部の動作を詳しく解析していたいと思っています。そうしたところ、先輩から「そういうことなら、命令セットアーキテクチャを勉強するといいよ」、とアドバイスをもらいました。 ここで質問なのですが、 1 「アセンブリ命令」と「命令セット」とはほぼ同じ言葉だと思って差し支えないでしょうか? 2 また、「命令セットアーキテクチャ」とは、「決定した命令セットから成るプロセッサ内部の仕様」と思って良いのでしょうか? 例えば、ジャンプ命令を受けたときには、構造的にどのようなしくみでプログラムカウンタのデータを変えるか、とかを規定したしくみそのものと理解していますが、それで正しいでしょうか? 以上、よろしくお願いします。
- g47040
- お礼率55% (125/226)
- その他([技術者向] コンピューター)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
現在のプロセッサの動作は極めて複雑になっておりアセンブリレベルで眺めてもその具体的な動作は理解できません。 これを参照 http://d.hatena.ne.jp/hyoshiok/20070916#p1 そこまで複雑でないものでもジャンプ命令の先読み動作とか、キャッシュのヒットミスによる動作などはデータや他のプロセスなどに依存して変化します。 アセンブリ言語から動作を理解するのであれば、最初はPICマイコンやAVRマイコン辺りから始めるのが良いでしょう。 取りあえず、ここでも読んでください。 http://www.picfun.com/cpuframe.html >1 「アセンブリ命令」と「命令セット」とはほぼ同じ言葉だと思って差し支えないでしょうか まあそうです。 「アセンブリ命令」には「命令セット」に含まれない「疑似命令」等が含まれます。 >2 また、「命令セットアーキテクチャ」とは、「決定した命令セットから成るプロセッサ内部の仕様」と思って良いのでしょうか? そう思ってよいでしょう。
関連するQ&A
- 命令セットアーキテクチャとは?
学校の授業で命令セットアーキテクチャという言葉がでてくるのですが、 意味としてはHWと低レベルSWとのインターフェースとかかれているのですが、 ようするになんですか?どんな命令を組み合わせてるかの構造、 というただそれだけの意味なのでしょうか?よくわかりません。 お願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- アセンブリでプログラムの高速化をするには
アセンブリレベルでのプログラムの高速化ができるようになりたくて、アセンブリを勉強し始めた者です。 質問なのですが、CPUは新しくなるにつれて命令が増えたり、製品によって微妙に違ったりしますよね。そういうCPUの命令の種類を知るにはどう調べたらいいのでしょうか?「core 2 アーキテクチャ」等と調べてみましたが、思うような情報が出てきません。CPUの仕様書みたいな物がメーカーから配布されていたりしますか? また、もし「Windowsパソコンで超高速に処理を行うコンポーネントを作ろう!」と思ったら、Windowsパソコンで使われている様々なCPU(coreとかPentiumとかAMDのCPUとか)に合わせてアセンブリ(アセンブリが対応していない場合は機械語)や命令セットを知り、CPUに特化したプログラムを書いていかなければならないでしょうか。CPUは本当に種類が多いので、それは死ぬほど大変なような気がします。それとも、CPUにはある程度の互換性があって、そこまで細分化してプログラムを書く必要はないですか? 質問は上記の2つです。回答よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- アセンブリ言語は原始プログラムですか?
質問(1) アセンブリ言語というのは、 add $S1, $S2 みたいなやつですよね? wikipediaで「ソースコード(ソースプログラム、原始プログラム)」の注釈1,2を読むと、 注1:【機械語の命令に記述するアセンブリ言語(アセンブラ)が存在するが、このアセンブラ用の文字列で記述されたプログラムはソースコードとは呼ばれないのが普通である。】 注2:【アセンブリ言語で書かれたプログラムはソースコードと呼ばれない】 と書かれてあります。 でも、 他の教材では アセンブリ言語で書かれたプログラム(原始プログラム) と書かれています。 どっちが正しいのでしょうか? 質問(2) 目的プログラム(オブジェクトプログラム)とは、 IT用語辞典によると 【オブジェクトプログラムとは、ソースプログラム(人間が認識できるプログラム言語で高水準言語など?)をコンパイラで機械語に翻訳したプログラムのことである】 とありますが、 ソースプログラムをコンパイラで翻訳するとアセンブリ言語になるんではないのですか? そのアセンブリ言語をアセンブラで翻訳して機械語になるのではないのでしょうか? どなたかご教授ください。 お願いします。
- ベストアンサー
- 情報処理技術者
- デバッグ<命令の無効化>
ソフトを起動する度に表示されるタイトルロゴや 使用上あまり必要の無い部分を機能させないようにしたいと思い 逆アセンブルをして解析を始めたのですが 必要の無い命令を無効にするにはどうしたらいいのでしょうか? 例えば :0047D3EA push 000055F2 のようなダイアログ呼び出し(?)の命令があったとして このダイアログの表示は必要無いので表示させないようにしたい この場合どの様にして書きかえればよいのでしょうか? バイナリエディタ等で開き書き換えるのだと思いますが どのようにしてよいのかわかりません また、ソフトウェア改造の違法性についても知っている方教えて下さい アセンブリ言語初心者ですので質問に意味不明なところがあるかもしれませんが そのへんもフォローしてお願いします
- ベストアンサー
- その他(インターネット・Webサービス)
- CISCとRISCの移植性について
こんにちわ. CISCとRISCの基本的な違いについては調べればいくつものサイトが出てくるのですが,移植性について根本的に分からないことがあったので質問させていただきます. CISCは複雑な機能をハードウェア(命令セットアーキテクチャ)で実現し,RISCは単純な命令セットで複雑な機能はソフトウェアで任せるためCISCのほうが移植性が高いと言われています. 移植性が高いとは,既存のソフトウェアを変更する必要がなく新しい機種に移行できるという意味ですが,そもそもRISCもCISCも最終的には用意された命令セットアーキテクチャを使用していることには代わりがないので,単純にその命令セットが変更しなければどちらも移植が可能な気がします. そうなると,単純な命令セットしか使用しないRISCのほうがその分変更が少ないので移植性がむしろ高いと思うんですが,実際はそうではありません. ソフトウェアで実現とは,コンパイラとOSのことを指すと思うのですが基本的にこれらが提供する機能に変更がなければ既存のソフトウェアは動くと思うんです.なのでこれらのコンパイラとOSがそれらの機能を実現するために使用する命令セットさせ変更がなければ良いと思うのですが…全く分かりません. どなたか教えて頂けないでしょうか? 宜しくお願いします. ちなみに教科書以外に以下のサイトを参考に調べていました. http://www.atmarkit.co.jp/fsys/zunouhoudan/027zunou/end_of_risc.html
- ベストアンサー
- その他(PCパーツ・周辺機器)
- ハードウェアアーキテクチャ?
ハードウェアアーキテクチャ? プログラムがコンピュータで実行されるまでの筋道が知りたいです。 C言語を勉強していたのですがmalloc();などの動的メモリの部分や #pragmaを使って変数のパッキングを弄る方法、部分的にアセンブラ命令を書いて処理を軽くするインラインアセンブラなどのテクニック、 レジスタ上にメモリを確保するregisterをつけて変数を宣言する方法など、ハードウェアに近い根幹的部分のほうを知りたいです。 メモリにしろヒープ領域とスタック領域があるだとかC言語の入門書には載っていないことがよくあります。 CPUの仕組みや、メモリの動作や、根本的なことが知りたいです。 このようなハードウェア寄り?なことを専門に扱っているHPや本などありましたら教えてください。
- ベストアンサー
- C・C++・C#
- EXEファイルって何ですか?
exeファイルっていったいどんな仕組みでソフトを起動させているのでしょうか? コンパイラでアセンブリ言語の状態になっているのがexeファイルなんでしょうか?
- 締切済み
- C・C++・C#
- 日本にIBMのような会社がない理由
なぜ日本にはIBMやOracle(元を辿ればSun)、あるいはIntelやAMD、ARMのように、プロセッサ(命令セット)やハードウェアアーキテクチャを設計して本家、大元となった会社がないのでしょうか? 大元となる命令セットやアーキテクチャを日本で作って、他の企業が調達したり、ライセンスを受けて互換品を作るという状況にはできなかったのでしょうか? 日本も、半導体の工場(Fab)がありますよね。
- ベストアンサー
- 経済
お礼
ご回答ありがとうございます。 どこまでを理解していて、どこからが理解できていないのか、tadysさんの回答にてはっきりさせることができました。 ありがとうございました。