アセンブリー‐げんご【アセンブリー言語】
アセンブリ言語
【英】assembly language
アセンブリ言語とは、低級プログラミング言語の1つで、機械語にほぼ直接対応するレベルの命令を人間が読み書きできる形で記述できるプログラミング言語のことである。
計算機の中心で演算処理を行っているのは中央演算処理装置(CPU)という構成要素である。これは、例えば「レジスタAに16進数の35をロードする」のような処理を行う。この処理をCPUに直接指示するコードを機械語と言い、CPUの種類によって異なる。例えば、Z80では「0100(番地) 3E 35」のようなものである。
アセンブリ言語は、CPUレベルの命令をシンボリックに書き下すものである。例えば「レジスタAに16進数の35をロードする」のような処理はアセンブリ言語では「LD A, 35H」のように記述される。アセンブラは、アセンブリ言語で記述されたプログラムを読み込み、変換し、ターゲットCPUに対応した機械語の列を出力する。
アセンブリ言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/22 15:20 UTC 版)
注釈
- ^ IBMはSystem/360から2011年現在まで一貫してアセンブラ言語 (Assembler Language)と 呼んでいる。例:IBM High Level Assembler
- ^ MIPSのアセンブラの一部など、(分岐命令のターゲットアドレスの先頭にある機械語命令を対象として)その分岐命令の遅延スロットへの移動を(副作用がない場合に)アセンブラ疑似命令 (.set bopt) の指示に応じて行うものもある。OPTASM(SLR社)という最適化アセンブラもあった。
- ^ 厳密にはCPUのビット幅に依存するが、マクロ定義はこれを条件付きコンパイルによりカバーしている。
- ^ GCC等、C言語への拡張によりシンボルへのセクション指定が可能なコンパイラはあるが、コンパイラへの強い依存性が生じる。アセンブリ言語であれば、およそセクションをサポートしたオブジェクトファイルが出力できるならばセクションの指定は何らかの手段で実装可能となる。
出典
- ^ a b "ニモニックによって表したプログラムをアセンブリ言語(assembly language)プログラムと呼ぶ。" 伊藤. 機械語とアセンブリ言語. 埼玉大学, 電気電子物理工学実験III. 2022-12-25閲覧.
- ^ Stroustrup, Bjarne, The C++ Programming Language, Addison-Wesley, 1986, ISBN 0-201-12078-X: "C++ was primarily designed so that the author and his friends would not have to program in assembler, C, or various modern high-level languages." - assembler を assembly language の意味で使っている例
- ^ Intel Architecture Software Developer’s Manual, Volume 2: Instruction Set Reference. INTEL CORPORATION. (1999) 2010年11月18日閲覧。
- ^ a b "各命令に、人間にとって意味があり、その命令が行う処理を類推できる文字列を対応付ける。この文字列をニモニック(mnemonic)と呼ぶ。" 伊藤. 機械語とアセンブリ言語. 埼玉大学, 電気電子物理工学実験III. 2022-12-25閲覧.
- ^ “The SPARC Architecture Manual, Version 8”. SPARC, International (1992年). 2011年12月10日時点のオリジナルよりアーカイブ。2012年10月27日閲覧。
- ^ a b David Salomon (1993). Assemblers and Loaders
- ^ Microsoft Corporation. “MASM: Directives & Pseudo-Opcodes”. 2011年3月19日閲覧。
- ^ a b c d Intel Architecture Software Developer’s Manual, Volume 2: Instruction Set Reference. INTEL CORPORATION. (1999). pp. 442 and 35 2010年11月18日閲覧。
- ^ Evans, David (2006年). “x86 Assembly Guide”. University of Virginia. 2010年11月18日閲覧。
- ^
goto
文が存在する言語もあるが、限定利用が推奨される - ^ Answers.com. “assembly language: Definition and Much More from Answers.com”. 2008年6月19日閲覧。
- ^ NESHLA: The High Level, Open Source, 6502 Assembler for the Nintendo Entertainment System
- ^ Z80 Op Codes for ZINT
- ^ コンピュータ予約システム (CRS) やクレジットカード会社で使われているトランザクションOS
- ^ Dr. H.D. Mills (1970) 提案、Marvin Kessler 実装 in IBM連邦政府システム部門
- ^ “Concept 14 Macros”. MVS Software. 2009年5月25日閲覧。
- ^ Saxon, James, and Plette, William, Programming the IBM 1401, Prentice-Hall, 1962, LoC 62-20615. - assembly program という用語を使っている例
- ^ J.DONOVAN, JOHN (1972). systems programming. pp. 59. ISBN 0-07-085175-1
- ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、8頁。ISBN 4-320-02526-1。
- ^ Hyde, Randall. "Chapter 12 – Classes and Objects". The Art of Assembly Language, 2nd Edition. No Starch Press. © 2010.
- ^ (John Daintith, ed.) A Dictionary of Computing: "meta-assembler"
- ^ Beck, Leland L. (1996). “2”. System Software: An Introduction to Systems Programming. Addison Wesley
- ^ Randall Hyde. “Which Assembler is the Best?”. 2007年10月18日時点のオリジナルよりアーカイブ。2007年10月19日閲覧。
- ^ Salomon. Assemblers and Loaders. p. 7 2012年1月17日閲覧。
- ^ “The IBM 650 Magnetic Drum Calculator”. 2012年1月17日閲覧。
- ^ Jim Lawless (2004年5月21日). “Speaking with Don French : The Man Behind the French Silk Assembler Tools”. 2008年8月21日時点のオリジナルよりアーカイブ。2008年7月25日閲覧。
- ^ 松 --- 事実上最初のパソコン用日本語ワープロソフト
- ^ Toolchain, libraries and headers relationship - PlayStation Development Network
- ^ What were PS1 and N64 games written in? : gamedev
- ^ “SegaBase Volume 6 - Saturn”. Eidolon's Inn (2008年1月10日). 2014年7月2日時点のオリジナルよりアーカイブ。2013年6月27日閲覧。
- ^ Lispによるリターゲッタブルコードジェネレータの実装 (PDF) Archived 2008年8月20日, at the Wayback Machine.
- ^ OOエンジニアの輪! ~ 第 21 回 川合史朗 さんの巻 ~ | オブジェクトの広場
- ^ NVIDIA Xbox GPU Specs | TechPowerUp GPU Database
- ^ Using Shaders in Direct3D 10 - Win32 apps | Microsoft Docs
- ^ Rusling, David A.. “The Linux Kernel”. 2012年3月11日閲覧。
- ^ “Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips”. New York Times, John Markoff (2005年11月28日). 2010年3月4日閲覧。
- ^ “Bit-field-badness”. hardwarebug.org (2010年1月30日). 2010年2月5日時点のオリジナルよりアーカイブ。2010年3月4日閲覧。
- ^ “GCC makes a mess”. hardwarebug.org (2009年5月13日). 2010年3月16日時点のオリジナルよりアーカイブ。2010年3月4日閲覧。
- ^ Randall Hyde. “The Great Debate”. 2008年6月16日時点のオリジナルよりアーカイブ。2008年7月3日閲覧。
- ^ “Code sourcery fails again”. hardwarebug.org (2010年1月30日). 2010年4月2日時点のオリジナルよりアーカイブ。2010年3月4日閲覧。
- ^ [CEDEC]「FINAL FANTASY XV」の最適化はこうして行われた - GamesIndustry.biz Japan Edition
- ^ “x264.git/common/x86/dct-32.asm”. git.videolan.org (2010年9月29日). 2012年3月4日時点のオリジナルよりアーカイブ。2010年9月29日閲覧。
- ^ “[https://github.com/torvalds/linux/blob/master/include/linux/export.h GitHub, torvalds / linux, include/linux/export.h]”. 2023年10月8日閲覧。
- ^ Hyde, Randall (1996年9月30日). “Foreword ("Why would anyone learn this stuff?"), op. cit.”. 2010年3月25日時点のオリジナルよりアーカイブ。2010年3月5日閲覧。
- 1 アセンブリ言語とは
- 2 アセンブリ言語の概要
- 3 高級言語との違い
- 4 歴史
- 5 利用
- 6 脚注
- 7 外部リンク
アセンブリ言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/08 15:29 UTC 版)
初期のプログラム電卓では機械語を直接使うことはできなかったが、ハッカーがインタプリタのインタフェースを迂回する方法を発見し、アセンブリ言語で直接プログラミングできるようになった。最初にこの技法が使われるようになったのは TI-85 で、モード切替にプログラミング上の欠陥があったためである。TI-83でも同様の技法が使われるようになると、TIとHPは愛好家がそのようなニーズを持っていることを把握するようになり、アセンブリ言語用ライブラリを開発したり、開発者向けの詳細文書を公開したりするようになった。携帯型ゲーム機のゲームと似たようなゲームがプログラム電卓(特にグラフ電卓)ですぐさま開発されるようになった。TIはTI-83やTI-89で正式にアセンブリ言語をパッケージとしてサポートするようになった。HPは2012年現在の最上位機種 HP 50g でアセンブリ言語を内蔵している。カシオはPB-1000(英語版)でアセンブリ言語を搭載し、PB-1000Cでは搭載CPUのアセンブリ言語ではなく情報処理技術者試験のCASLを搭載していた。
※この「アセンブリ言語」の解説は、「プログラム電卓」の解説の一部です。
「アセンブリ言語」を含む「プログラム電卓」の記事については、「プログラム電卓」の概要を参照ください。
アセンブリ言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2013/07/26 10:16 UTC 版)
アセンブリ言語は、命令のニーモニックとオペランドで機械語を表す低水準言語である。アセンブリ言語は機械語を正確に制御しながら読みやすさを補強する。現在では、大半のプログラミングは、通常は読み書きを容易にするため高水準言語を用いて行う。これらの言語はコンパイルする(機械語に変換する)か、他のコンパイルされたプログラム(インタプリタ)により解釈実行する。
※この「アセンブリ言語」の解説は、「オペコード」の解説の一部です。
「アセンブリ言語」を含む「オペコード」の記事については、「オペコード」の概要を参照ください。
アセンブリ言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/22 05:37 UTC 版)
アセンブラ指示文(英: assembler directive)は,〔アセンブリ言語において〕環境に関する情報や領域(英: section)の境界を提示してプログラムのアセンブルを制御する。 例えば多くのアセンブラでは,ALIGN指示文を認識して,はコード内の現在の位置をワード境界に揃えるため必要なバイトを挿入する。
※この「アセンブリ言語」の解説は、「ディレクティブ」の解説の一部です。
「アセンブリ言語」を含む「ディレクティブ」の記事については、「ディレクティブ」の概要を参照ください。
アセンブリ言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/12 01:55 UTC 版)
「値 (計算機科学)」の記事における「アセンブリ言語」の解説
アセンブリ言語(というよりは機械語)のレベルでは、多くのアーキテクチャでは値は単なるビット列なので、どのようなデータ型とみなすことも本質的には自由である。タグビットなどにより機械レベルでも型のあるアーキテクチャもある。 アセンブリ言語には、値の置き方が通例2通りある。ひとつはメモリのその番地に置くべき値をそのまま指定するもので、たいていのアセンブリ言語にはそのためのアセンブラ疑似命令がある。もうひとつはイミディエイト(immediate、即値)で、機械語の命令列中に、命令にただちに引き続いて(immediately)値を置くもので、命令セットによっては値の範囲が厳しく制限されているものもある(正確には命令セットそのものではなく、その命令を具体的にビット列にエンコードする方法である、命令フォーマットによって制限される)。
※この「アセンブリ言語」の解説は、「値 (計算機科学)」の解説の一部です。
「アセンブリ言語」を含む「値 (計算機科学)」の記事については、「値 (計算機科学)」の概要を参照ください。
「アセンブリ言語」の例文・使い方・用例・文例
固有名詞の分類
- アセンブリ言語のページへのリンク