分かりやす〜い
コンピュータ技術情報

TOPに戻る
▼Processor
簡単なアセンブラ言語
┣ 高級、低級の意味と
┃ レジスタ、mov、add

┣ 計算を行う
┣ プログラムを作る
┣ loop命令
┣ Indexレジスタの
┃ 役割とレジスタの
┃ 大きさ
┣ リピートプリフィック
┃ ス・ストリング命令

┣ inc・dec命令
┣ MMX技術
┣ MMXレジスタ
┣ MMX・SIMD・SSE
┣ CMP・JMP命令
┣ 関数とパラメータ
┣ スタック領域
┣ ESPレジスタ
┣ セグメント・
┃   call・ret

┣ コードファイルを作る
┣ コードファイル説明1
┣ コードファイル説明2
┗ マイクロコード

Copyright(C) 2001-2002.ugpop. All rights reserved.




■デジタル用語辞典:
■ マイクロコード ■

ところで、「アセンブラ言語」で書かれたコードは「機械語」
(マシン語)に翻訳されます。

この「機械語」がプロセッサが理解する最終形なのでしょうか?

実は機械語は更に細かい命令に分断されます。

これはソフトウェア開発者が意識する必要は全くありませんが、
知識として知っておくと良いと思います。

機械語というのは、プロセッサに取り込まれた後に、更に細か
な命令に分けられます。

何故、機械語よりも細かな命令に分断しなければならないのか
というと、細かな命令に分断する事により、プロセッサ内部で
の処理が「簡略化」出来るからです。

簡略化出来ると何か良い事があるのでしょうか?


プロセッサ内部での処理を簡略化する事により、1つ1つの命
令の「処理を速くする」事が出来るようになります。

つまり、1つ1つの命令を小さく、単純化する事により、それ
ぞれの処理を単純化(=高速化)出来るのです。

勿論、命令を細かな物に分断してしまうので、命令数は増えて
しまいます。

しかし、1つ1つの命令が単純なので、より高速に行なえる命
令を先に実行したり、複数の命令を同時に実行したりする等の
工夫をする事が出来るようになります。

これらの、より高速に処理が行なえるようにする工夫や仕組み
の事を「マイクロアーキテクチャ」といいます。

この言葉はコンピュータ雑誌等で見かけた事がある方もいらっ
しゃるかもしれません。

また、1つ1つの細かな命令群の事を「マイクロコード」とい
います。


以前にも説明しましたが、インテル製のプロセッサはCISC(Co-
mplex Instruction Set Computer:複合命令セットコンピュー
タ)と呼ばれます。
これは、1つの命令で複雑な処理を行えるプロセッサの事です
が、内部でマイクロコードが活躍しているので複雑な処理を行
う事が出来るのです。


また、インテル製以外の殆どのプロセッサはRISC(Reduced In-
struction Set Computer:単純命令セットコンピュータ)と呼
ばれます。
こちらは基本的にマイクロコードは使用されません。
何故なら、初めから単純な命令しか存在しないので、わざわざ
マイクロコードに分断する必要性が無いからです。


さて、今回でとりあえず「簡単なアセンブラ言語」講座は終了
となります。

この講座を熱心に読んでくださった方であれば、これで一通り
アセンブラ言語については読めるようになっていると思います。

ただし、「簡単なアセンブラ言語」という講座名の通り、この
講座では非常に基本的な命令しか紹介していません。

全てを紹介していると非常に量が多くなってしまうという事も
ありますが、あえて説明を省いてしまった部分もあります。

アセンブラ言語について知識の豊富な方は、この講座は非常に
物足りなく感じた事と思います。
逆に、アセンブラ言語についてそれほど知識の無い方は、この
講座を読む事によって、プロセッサの仕組みや動作原理につい
てもっと知りたくなったのではないでしょうか?(そうだと良
いのですが・・。)

例えば、MMXやSSEについてもっと知りたくなったという
方もいらっしゃるかもしれませんし、仮想メモリや保護機能に
ついて知りたくなったという方もいらっしゃるかもしれません。
それだけではなく、この講座では触れませんでしたが、もっと
もっと特殊な事、システムコールやタスクスイッチ、特権命令
や割り込み等について知りたい、という方もいらっしゃるかも
しれません。(タスクスイッチに関してはこの講座で取り上げ
た命令を使用します。)

それらを知るには、この講座ではまだまだ説明不足ですが、そ
ういう、何故?どうやって?動作原理は?などという疑問を持
つ事は非常に重要な事だと思います。
また、その為にあえて軽く触れるだけで説明を省略した部分も
あります。

これらの技術については、その内に講座として取り上げる事も
あるかと思いますが、もし、そのような疑問を1つでも持たれ
た場合、これでは物足りないという方は、1番最後に掲載する
参考文献の方に非常に有益な情報が多数掲載されています。

これらの参考文献の中でも、特にお勧めしたいのが、インテル
社が公開している「IA-32 インテル(R)アーキテクチャ・ソフ
トウェア・デべロッパーズ・マニュアル、上巻・中巻・下巻」
です。

これらのマニュアルは、それぞれが非常に分量が多いです。
しかし、ダウンロードした後に、目次だけでも良いので読んで
みてください。
目次の中には、あなたがプロセッサについて疑問に思っている
事についての項目があるはずです。

それらの項目について割かれているページ数は、たかだか10
ページか、それよりもずっと少ないはずです。

まずはその項目に的を絞って読んでみましょう。

読んで、理解する事が出来れば、あなたは確実にハッカーに1
歩近づけた事になります。

また、読んでいく内に、新たな疑問が浮かぶかもしれません。
その時は、それについての項目を目次から探し出して、読んで
みてください。

後はそれの繰り返しです。


私の所に届くメールの中に、「ハッカーになるにはどうすれば
良いですか?」という質問が結構寄せられます。

もう答えは分かりますよね?

そういった、地味な作業の繰り返しです。

実際にこのメールマガジンの読者の方の中で、そういった作業を既
に始めているという、素晴らしい御意見も頂きます。

また、先ほど紹介した「IA-32 インテル(R)アーキテクチャ・
ソフトウェア・デべロッパーズ・マニュアル」ですが、これは
一昔前までは1冊数千円もする書籍を購入しなければなりませ
んでした。
現在では全てネット上に無料で公開されており、簡単に入手す
る事ができます。

その気になりさえすれば誰でもプロセッサに関する知識を得る
事が出来るのです。

あなたもこれらの書籍を読んで、立派なハッカーになってみま
せんか?



参考文献:

IA-32 インテル(R) アーキテクチャ・ソフトウェア・デべロッ
パーズ・マニュアル、上巻:基本アーキテクチャ (日本語 PDF
ファイル、7,603KB)
>>> ftp://download.intel.co.jp/jp/developer/jpdoc/24547003_j.pdf

IA-32 インテル(R) アーキテクチャ・ソフトウェア・デべロッ
パーズ・マニュアル、中巻:命令セット・リファレンス (日本
語 PDF ファイル、11,688KB)
>>> ftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf

IA-32 インテル(R) アーキテクチャ・ソフトウェア・デベロッ
パーズ・マニュアル、下巻:システム・プログラミング・ガイ
ド (日本語 PDF ファイル、6,526KB)
>>> ftp://download.intel.co.jp/jp/developer/jpdoc/24547203_j.pdf


インテル日本語技術資料ダウンロード
(上記3冊全てとその他日本語技術資料、Itaniumプロセッサ
の資料へのリンク集です。)
>>> http://www.intel.co.jp/jp/developer/download/index.htm


その他、参考にしたホームページ
>>> http://www.csl.sony.co.jp/person/fnami/asm.htm

>>> http://isweb31.infoseek.co.jp/computer/maccyo/assembler/oldassembly.html



▲このページの上へ

▲このページの上へ

←前に戻る    ▲このページの上へ