2008年02月24日
アセンブリ言語
なんて覚えられないっすよー。
アセンブリ言語(アセンブリげんご、assembly language)とは、人間にわかりやすい形で機械語を記述するプログラミング言語である。代表的な低級言語である。CPUが直接実行できる言語は機械語のみであるが、機械語は数字の羅列なので人間には理解しにくい。そこで、機械語を直接記述するのではなく、機械語の意味を表す略語で機械語を記述することで、人間にわかりやすくしたものがアセンブリ言語である。アセンブリ言語の文法はCPUのアーキテクチャに依存するため、高級言語のような移植性はない。
アセンブリ言語を機械語に変換する事をアセンブル (assemble) すると言い、それを行うプログラムの事をアセンブラ (assembler) と言う。アセンブリ言語のことをアセンブラと呼ぶ者もいるが、これは厳密には誤用である。
アセンブリ言語の命令は、アセンブラに対する命令(疑似命令)やマクロ命令を除き、機械語と1対1で対応する。そのため、高級言語のコンパイラの最適化能力では実現できない最適化を手作業で行いたい場合のほか、CPUの動作をプログラマが完全に制御する必要がある場面、例えばOSカーネルやデバイスドライバ、組み込みシステムの開発といった場面で頻繁に用いられる。
機械語は、実行したい計算の内容をCPUの内部構造に依存した非常に単純な操作に分割・変換したものであるため、人間には理解しづらい。機械語を並べながらプログラミングをするのは、人間のプログラマにとっては負担が大きかった。
そこで、機械語そのものを書く代わりに機械語の「意味」に相当する短い記号や単語を並べておき、それを見ながらプログラミングをすることが考えられた。
例えば80x86 CPUの機械語
10110000 011000012 (B0 6116)
は「ALレジスタに6116 (97) という数値を格納せよ」という意味であるが、この数列から意味を読み取るのは難しいので、
MOV AL, 61
と書いておく(MASMでの例)。ちなみに、"MOV" は 英単語 "move"(動かす)の略である。
このように、機械語そのものよりも親しみやすい記法でプログラムを書いておいて、プログラムが完成したときにまとめて機械語に変換するのである。
当初、この機械語への変換は人間が手で行っていた。これをハンド・アセンブルと呼ぶ。 しかし、この変換は単に定められた規則に従って記号や単語から機械語を生成するだけなので、この作業をコンピュータに行わせることが考えられた。 そしてアセンブリ言語を与えると、自動的に機械語を出力するプログラムが作られるようになった。このプログラムをアセンブラという。アセンブラの登場当初は、アセンブラで機械語のプログラムを生成することを自動プログラミングと呼んだ。
(以上、ウィキペディアより引用)
難しいっす。。
3377 森上 氏の毎日の憂さ晴らしの日記
3678 私設私書箱 清宮 君のいつもまじめな日記
3978 私設私書箱 浅羽 君のいつもまじめな日記
4277 国分寺 デリヘル 大空 的思考能力
八王子 デリヘル嬢 竹上 ですよ?
3978 私設私書箱 浅羽 君のいつもまじめな日記
2778 宗政 のブログ的独り言
3078 小比賀 のブログ的独り言
3378 森尻 のブログ的独り言
3679 エステ 清見 氏の今日のまとめ的ブログ日記
- by
- at 22:46