FASM

FASM
開発者トマシュ・グリシュタル
初回リリース2000年3月 (2000-03
安定版リリース
1.73.32 [ 1 ] ウィキデータで編集する / 2023年12月4日 (2023年12月4日
リポジトリ
書かれた組み立て
オペレーティング·システムUnix 系LinuxWindowsと IDE、MS-DOSと IDE、OpenBSDなど、MenuetOSKolibriOSOctaOS、 DexOS と IDE、SkyOSSolar_OS
プラットフォームx86x86-64
タイプアセンブラ
ライセンス弱いコピーレフト条項を持つ簡易BSD
Webサイトフラットアセンブラー.net

FASMフラットアセンブラ)は、x86プロセッサ用のアセンブラです。IA -32およびx86-64コンピュータアーキテクチャ上でIntelスタイルのアセンブリ言語をサポートしています。高速性、サイズ最適化、オペレーティングシステム(OS)への移植性、マクロ機能を備えています。[ 2 ] [ 3 ] FASMは低レベルアセンブラであり[ 3 ] 、意図的にコマンドラインオプションを非常に少なくしています。無料のオープンソースソフトウェアです。

FASMの全バージョンは、以下のいずれかを直接出力できます。フラットな「生の」バイナリ(MS-DOS COM実行ファイルまたはSYSドライバとしても使用可能)、オブジェクト:実行可能およびリンク可能形式(ELF)または共通オブジェクトファイル形式(COFF)(従来型またはMS固有)、あるいはMZ、ELF、またはポータブル実行可能形式(PE)の実行ファイル(WDMドライバを含む、カスタムMZ DOSスタブも可能)。ARMアーキテクチャを対象とした非公式移植版も存在します。[ 4 ]

歴史

このプロジェクトは、1999年にポーランド出身の数学学部生だったTomasz Grysztar(別名Privalov)によって開始されました。2000年3月に公開されました。[ 5 ] [ 6 ] FASMは完全にアセンブリ言語で記述されており、完全なソースコードが付属しています。バージョン0.90(1999年5月4日)以降、セルフホスティングが可能で、自己アセンブルが可能です。

FASMは当初、16ビットのフラットリアルモードで動作していました。32ビットサポートが追加され、その後オプションでDPMIサポートが追加されました。フラットな32ビットアドレス指定を持つあらゆるオペレーティングシステムに容易に移植できるように設計されており、Windows、そしてLinuxにも移植されました。

デザイン

FASMはMASMTASMほど多くの高水準文をサポートしていない。[ 3 ]構文機能とマクロが提供されており、不足している文をカスタマイズしたり作成したりすることができる。[ 5 ]メモリアドレス指定構文はTASMの理想モードやNASMに似ている。両方のアセンブラと同様に括弧はメモリオペランドを示すために使用されるが、そのサイズはNASMと同様に括弧の外側に置かれる。[ 7 ]

FASMはマルチパスアセンブラです。コードサイズの最適化を徹底的に行い、制約のない前方参照を可能にします。[ 3 ] [ 7 ] FASMの珍しい構造の一つは、コード内のどこかで使用されている場合にのみ手続きを定義することです。これは、ほとんどの言語ではリンカー によってオブジェクトごとに実行されます。

FASMは「同一ソース、同一出力」の原則に基づいています。つまり、結果ファイルの内容はコマンドラインの影響を受けません。[ 7 ]このアプローチにより、FASMソースは多くのアセンブリプロジェクトでよく見られるコンパイルの問題から解放されます。一方で、複数の別々にコンパイルされたソースファイルや混合言語プロジェクトで構成されるプロジェクトの保守は困難になります。しかし、この問題を軽減するFAと呼ばれるWin32ラッパーが存在します。[ 8 ] FASMプロジェクトは、リンク段階なしで1つのソースファイルから直接実行ファイルにビルドできます。[ 3 ]

IDE

Freshはジョン・ファウンドが始めたプロジェクトで、WindowsとLinux上で動作するFASMの統合開発環境です。 [ 9 ]

使用

FASM で記述されたオペレーティング システム:

FASM をバックエンドとして使用するコンパイラ:

参照

参考文献

  1. ^ 「ダウンロード」
  2. ^ Grysztar, Tomasz (2008-05-12). 「フラットアセンブラプログラマーズマニュアル」 .フラットアセンブラ. 2008年5月12日閲覧
  3. ^ a b c d e Hyde, Randall. 「Which Assembler is the Best?」 2013年11月16日時点のオリジナルよりアーカイブ。 2008年5月18日閲覧
  4. ^ "FASMARM" . 2008年3月20日. 2008年5月12日閲覧
  5. ^ a b「FASMの著者プリヴァロフ氏へのインタビュー」 2004年8月12日. 2007年10月8日時点のオリジナルよりアーカイブ。 2008年5月12日閲覧
  6. ^ Grysztar, Tomasz (2000-03-15). 「フラットアセンブラ」 . 2008年5月19日閲覧
  7. ^ a b c Grysztar, Tomasz. 「フラットアセンブラ設計原則」 . 2008年5月12日閲覧
  8. ^ Grysztar, Tomasz. 「FA – fasmのコマンドライン拡張機能」 . 2012年5月11日閲覧
  9. ^ファウンド、ジョン。「フレッシュIDプロジェクト」
  10. ^ "MenuetOS" . 2008年5月18日閲覧。
  • FASMプロジェクト:公式サイト
  • FASMLIB 0.8.0 – FASM/MASM/YASM/NASM/GASM 用のポータブル 32 ビット x86 asm ライブラリ
  • FASMARM – ARMプロセッサ向けFASM、v1.27、2012年6月9日 (2012年6月9日
  • 新鮮なIDE