便利なキーワード検索サイト ことなびトップページへ
デル株式会社







ことなびTOP  サイトマップ  ことなびとは?



便利!NINJA TOOLS
→FC2検索 用語 Wikipedia YouTube

アセンブリ言語 とは?

 ページ内リンク   ↓ウィキペディア(Wikipedia)記事  ↓Yahoo!知恵袋

アセンブリ言語アセンブリげんごassembly language)とは、人間にわかりやすい形で機械語を記述する代表的な低級言語である。CPUが直接実行できる言語は機械語のみであるが、機械語は数字の羅列なので人間には理解しにくい。そこで、機械語を直接記述するのではなく、機械語の意味を表す略語で機械語を記述することで、人間にわかりやすくしたものがアセンブリ言語である。アセンブリ言語の文法はCPUのアーキテクチャに依存するため、高級言語のような移植性はない。

出典: 『ウィキペディア(Wikipedia)』


アセンブリ言語はてなダイアリーを別ウィンドウで表示  :  【assembly language】コンピュータ登場初期では機械語を読みやすくするために単にニモニック表記するだけであった(機械語と一対一)が今(MASM)は対応しなくなっている。 昔は機械語(バイナリーコード)でプログラミングする人もいたが最近では”機械語でプログラムを書く”、と言った場合は、アセンブリ言語でプログラムを書くという意味らしい。 主なアセンブラ MASM GAS CASL

出典: 『はてなダイアリー』


和英辞典

アセンブリー言語 [アセンブリーげんご] 別ウィンドウで表示  …  (n) assembly language

ノースウエスト航空 のマイルは、国内航空会社のマイレージと違って無期限!! 格安パックツアーでも
100%マイルが付くのでお得!! 国内往復分15000マイルを貯めて沖縄や北海道へ!!


関連商品

本  構造化コンピュータ構成 第4版―デジタルロジックからアセンブリ言語まで別ウィンドウで表示

アンドリュー・S. タネンバウム /  最安値(新品): ¥ 7,560  最安値(中古): ¥ 3,115 
おすすめ度5.0(全レビューの平均)Verilog、VHDLが流行っている今となっては、少し物足りないかもしれない。 しかし、フリップフロップからCPUまでを記述していた古典的書籍としては、情報系の大学1ー2年の学生または工業工業の2−3年の学生に最適だと思う。 電気、電子系だと、もう少しつっこみのあるものを教科書にして欲しい。  (kaizen さんのレビュー)

本  アセンブリ言語の教科書別ウィンドウで表示

愛甲 健二 /  最安値(新品): ¥ 3,990  最安値(中古): ¥ 2,580 
16ビットと32ビット、およびWindowsのアセンブリ言語プログラミングの解説を、debug、NASM、gcc、Bochsなどなどを使って広範囲に解説している。アセンブリ言語をある程度知っている人がいろいろ勉強したいというときには最適。ただ、初心者にはあれこれ盛り込みすぎで難しいかもしれない。独習アセンブラのような独習書で勉強してから読むとよいのではないだろうか。  (低レベル言語マニア さんのレビュー)

本  Cとアセンブリ言語で学ぶ計算機プログラミングの基礎概念 - プログラムはプロセッサ上でどのように実行されるのか別ウィンドウで表示

角川 裕次 /  最安値(新品): ¥ 5,040 

PCソフトウェア  合格CASL 2 1.1別ウィンドウで表示

最安値(新品): ¥ 8,644 

PCソフトウェア  合格CASL 2 1.1 アカデミック別ウィンドウで表示

最安値(新品): ¥ 6,781 




ウィキペディア(Wikipedia)記事


アセンブリ言語アセンブリげんご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"(動かす)の略である。

このように、機械語そのものよりも親しみやすい記法でプログラムを書いておいて、プログラムが完成したときにまとめて機械語に変換するのである。

当初、この機械語への変換は人間が手で行っていた。これをハンド・アセンブルと呼ぶ。 しかし、この変換は単に定められた規則に従って記号や単語から機械語を生成するだけなので、この作業をコンピュータに行わせることが考えられた。 そしてアセンブリ言語を与えると、自動的に機械語を出力するプログラムが作られるようになった。このプログラムをアセンブラという。アセンブラの登場当初は、アセンブラで機械語のプログラムを生成することを自動プログラミングと呼んだ。

文法

アセンブリ言語によるプログラミングにおいては、ニーモニックという命令の列を記述する。 ニーモニックは基本的に機械語の命令と対となる語であり、対象となるCPUアーキテクチャによって異なる。一般にCPUの設計者あるいは製造者によって定義されたニーモニックが標準とされるが、アセンブラの実装によってはこれと異なるニーモニックを用いる場合もある。

プログラムには、機械語と対になる命令文の他に、直接機械語には変換されないアセンブラに対する指示文が含まれる。これを疑似命令といい、ラベルの宣言、セクションの定義、条件アセンブルや繰り返しブロック、マクロなどが含まれる。マクロは、複数のニーモニックを1つの命令文で記述する構文で、マクロを使えるアセンブラをマクロアセンブラという。

また、RISCアーキテクチャ向けのアセンブリ言語では、その命令セットに対応するもの以外のニーモニック(例えば定型的に用いられる複数の命令の組み合わせ)が標準で定義されていて、そのニーモニックを記述することで、動作が同じ命令に変換されたり、複数の命令を組み合わせた形にアセンブルされる。

さらに最近では、パイプライン処理などを最適化するために命令順序を入れ替えたり、ラベルの位置関係によってアドレッシングモードを最適化するアセンブラもあり、必ずしもソーステキストの記述とアセンブルの結果が直接対応するとは限らない。

機械語は、処理の内容であるオペコードと、処理の対象であるオペランドの組み合わせで記述できるよう設計されている。それに従い、ニーモニックもオペコードとオペランドに分けて記述する。たとえば先述のニーモニック

MOV AL, 61

は、オペコード「MOV」と、2つのオペランド「AL」と「61」からなり、

10110000 011000012 (B0 6116)

と変換される。オペランドの個数は命令によって異なる。典型的には、オペランドは0以上のソースと1つのデスティネーションからなり、ソースには定数・レジスタ・メモリのいずれか、ディスティネーションにはレジスタ・メモリのいずれかを指定する。プロセッサは、ソース部分に記述されたデータを用いて、ニーモニックに指定された命令を実行し、その結果をデスティネーションに格納する。上の例では、61がソースでALがデスティネーションに格納する。オペランドの記述順序は、上の例では「デスティネーション, ソース」だが、「ソース, デスティネーション」の順に書くアセンブリ言語もある。


アセンブラとコンパイラ

多くのコンパイラは、いったんコードをアセンブリ言語で出力してからアセンブラに通す。その意味ではアセンブリ言語は、最も利用頻度の高いプログラミング言語といえる。

一部のコンパイラでは、インライン・アセンブラを使うことで、ソース・コードの一部をアセンブラで書くことができる。最小限のアセンブリ言語の知識で書くことができ、プログラムのほんの数行をインライン・アセンブラ化するだけで、全体をアセンブリ言語で書いたプログラムに近い実行速度を実現できることもあるが、互換性や移植性は大きく損なわれる。

分割コンパイルで作成するプログラムの一部のモジュールをアセンブリ言語で書くこともある。この場合、コンパイラの呼出規約にしたがってアセンブリ言語プロシージャを書き、コンパイラが生成したオブジェクトライブラリと、アセンブラが生成したそれらを、対応したリンカで結合する。

主なアセンブラ

亜種

表記をニモニックやオペランド等のトークンの並びにする形式の他に、等号や記号を使ってより直感的に扱える物もある。

BASEの表記例は下記の通り(BASE-09)

S[A,B,X,U
A=$80
A=A+$C0
S]A,B,X,U,PC

上記の記述は下記のアセンブラ表記に対応する。

PSHS A,B,X,U
LDA #$80
ADDA #$C0
PULS A,B,X,U,PC

関連項目


ウィキペディア All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの記事を複製、改変、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。ことなびに掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。



Yahoo!知恵袋


  • 高校生くらいの普通の子で、実は天才ハッカーってありえませんよね。コンピュータ....別ウィンドウで表示

    高校生くらいの普通の子で、実は天才ハッカーってありえませんよね。コンピューターのハードの基礎、C言語、プログラミング能力、理数系の超高度な頭脳と知識がなければ不可能ですよね。実際、むちゃくちゃ頭良くないと、ハッカーなんてできないんじゃないですか?ブラッディ・マンディを視ると「あり得ん!」と思えるのですが、それと、あんなにどこでもパソコンて使えないですよねー。携帯並みじゃないですか。メカオンチの私にはどこまでが可能性があって、こんなのって漫画だからってとこがイマイチわかりません。すみません、質問になってないですよね。ご感想でもいいです。何か教えていただけませんか?
    解決日時:Thu, 30 Oct 2008 00:31:03 +0900 /  回答数:1 /  スコア:66,719点
  • デバッガについて別ウィンドウで表示

    デバッガについてプログラミングに興味があってデバッグや逆アセンブルについて調べていたんですが、デバッガにはたいてい逆アセンブラの機能がついているからメモリ領域を指定すれば必要な部分の逆アセンブルができるとあったんですが、デバッガってそういうものじゃないんですか?Ollydbgを使ってるんですが、exeを読み込ますと出てくるのがアセンブラ言語ですよね?そういう使い方しかしてないんですけど本来の使い方じゃないんですか?もし自分が逆アセンブラとして使っていたならメモリ領域を指定するにはどうすればいいですか?質問が多くてすいません。
    解決日時:Mon, 27 Oct 2008 21:09:59 +0900 /  回答数:2 /  スコア:56,576点
  • 一番最初にプログラミング言語を覚えるならLisp、C言語のどちらが良いですか?理由....別ウィンドウで表示

    一番最初にプログラミング言語を覚えるならLisp、C言語のどちらが良いですか?理由も添えて頂けたら嬉しいです。
    解決日時:Wed, 15 Oct 2008 20:55:43 +0900 /  回答数:4 /  スコア:67,006点
  • 10月12日のアセンブラ言語の質問の追記です。質問内容の変更は出来なかったので新....別ウィンドウで表示

    10月12日のアセンブラ言語の質問の追記です。質問内容の変更は出来なかったので新たに質問の形をとります。よろしくお願いします。本当に丁寧でわかりやすい説明どうもありがとうございます。レジスタについてですが、GR2はANS番地に16進数を格納するための指標レジスタGR3はBINの文字列で表現している2進数を構成する数字を4桁ずつ取り出すと考えましたが、これで可能な限り具体的になっているでしょうか。下位ビットはシフト処理を行っていないGR7 となると思います。①JZE②GR3,BIN③GR7,WK④GR4,4⑤GR5,2⑥GR6,1⑦GR0,HEX,GR7⑧ST⑨GR2,1,GR2⑩JUMPと考えました。よろしくお願いします。
    解決日時:Thu, 16 Oct 2008 02:37:44 +0900 /  回答数:1 /  スコア:66,936点
  • unix以前の1950年,60年,70年ごろのOSは、アセンブリ言語で作られていたのでしょう...別ウィンドウで表示

    unix以前の1950年,60年,70年ごろのOSは、アセンブリ言語で作られていたのでしょうか?
    解決日時:Thu, 02 Oct 2008 19:38:15 +0900 /  回答数:1 /  スコア:91,608点
  • ファミリーベーシックができればパソコン検定は受かりますか?別ウィンドウで表示

    ファミリーベーシックができればパソコン検定は受かりますか?
    解決日時:Thu, 11 Sep 2008 08:41:47 +0900 /  回答数:2 /  スコア:41,395点



「アセンブリ言語」 検索数の推移 (過去1ヶ月間)

powered by  goo ( NTT Resonant Inc. )


  ↓ニュース  ↓YouTube  ↓テレビ番組  ↓はてブ  ↓ヤフオク
  ↓このページへのリンク

ニュース記事

powered by  Google+ Yahoo!

●その後、8008のアセンブリ言語から、8080を経て、まじめに実機で書けるようになったのは6502のアセンブリ言語とBASIC。 ... 最初にC言語に触れたのは1984年ごろ。 MS-DOSの上でいろいろ遊んでいるうちに覚えた。 ...別ウィンドウで表示   (2008年11月21日)

●... というのをアセンブリ言語以外で書くのって結構面倒だからね。 ... アセンブリ ... 抽象化は必要だろうけど、実際にアセンブリ言語に落ちたとき、あるいは最近のプロセッサならどうやって実行されるのか(投機的実行なんてのもあるわけだし) ...別ウィンドウで表示   (2008年11月20日)

●歴史的な背景から考えると、かつて、ソフトウェアの開発にはアセンブリ言語が使用されており、これがやがて、構造化言語に取って代わられた。 ここまではいわゆる手続き型言語と呼ばれる範疇のもので、水が上流から下流へと流れていくように、淡々と処理が行われる仕組みと言える。 ...別ウィンドウで表示   (2008年11月11日)

●バイナリコード以外の言語で使えるものといえば、アセンブラと、IBMが提供していたGOTRANというプログラムだけだった。 ... まるでアセンブリ言語のようなだけど、書式の点ではアセンブリ言語とは違っていた。 関連キーワード ...別ウィンドウで表示   (2008年11月10日)

●... ITmedia +D Mobile | ITmedia +D LifeStyle | ITmedia +D Games | ITmedia 製品NAVI ... メールマガジンのプレゼント ... アセンブリ言語のコマンド。 ...別ウィンドウで表示   (2008年11月7日)

●2005/08/25 17:11 更新. Cell「ブロードバンド・エンジン・アーキテクチャ」仕様を公開 ... さらにSPUについて、命令セット、C/C++拡張、アプリケーションバイナリインタフェース、アセンブリ言語の仕様も公開した。 ...別ウィンドウで表示   ()

YouTube

powered by YouTube


※.クリックすると動画が再生されます。

テレビ番組サーチ

powered by Yahoo!TV

はてなブックマーク

powered by Hatena

 PageRank5以上の相互リンク
 ・相互リンクスクエア  (PageRank 5)
 ・相互リンク相互リンク アクセスランキング インプロス  (PageRank 5)
 →便利!NINJA TOOLS
 →FC2検索  用語  Wikipedia  YouTube


スポンサー

powered by  コンテンツマッチ広告のブレイナー


Yahooオークション

powered by Yahoo!

 








デル株式会社 ThinkPad アウトレット Apple Store(Japan) PCDEPOT WEB本店/OZZIO Sony Style(ソニースタイル) シマンテックダウンロードストア マカフィー・ストア

ことなびTOP -  サイトマップ sitemap.xml  -  ことなびとは? -  利用規約

©2007 Kotonavi.com