|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。
インラインアセンブラ(英: Inline assembler)は、高水準言語の処理系中に埋込まれているアセンブラ、ないし、そのような言語でソースコード中(インライン)にアセンブリ言語によるコードを埋込むことができる、という機能である。例として、以下のような利用法がある。 * 最適化: アルゴリズムで最も性能に影響する部分をアセンブリ言語に置き換える。これによりプログラマはコンパイラの制約を受けることなく自由に細工を施すことができる。 * プロセッサ固有の特殊な命令の利用: コンペア・アンド・スワップやテスト・アンド・セットのような、セマフォやロックを実装するための命令があるプロセッサがあるが、それらの機能を言語拡張などではなく〔GCCはそれらをサポートする組込み関数を持っている( https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html )〕、インラインアセンブラにより直接簡便に利用できる。他には、SIMD拡張命令など具体的にはSPARCのVIS、インテルのMMXやSSE、モトローラのAltivecといった命令はコンパイラからの有効的利用が難しく(研究はさかんに行われているが)、インラインアセンブラを利用してC言語中から直接利用することで高い性能を実現できることがある。 * システムコール: システムコールのAPIは、現代では通常はC言語のライブラリとして定義されているが、上述の特殊な命令と同様にSVC命令などを直接利用して呼び出すためにアセンブリ言語が利用される。 == 最適化の例とプロセッサ固有命令の例 == x86のFPUを利用して変数xのタンジェントを計算するD言語で記述されたインラインアセンブラの例。x86系プロセッサで利用可能な円周率の近似値を得るための fldpi 命令を利用でき、コンパイラが浮動小数点を用いた場合より高速である。抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「インラインアセンブラ」の詳細全文を読む スポンサード リンク
|