ASM ファイル形式とは?
.asm ファイルには、低レベルプログラミング言語で記述されたアプリケーションのソースコードが保存されます。この形式はデータをプレーンテキストで保存するため、任意のテキストエディタを使用してアクセスできます。ただし、行番号の表示や構文ハイライトなどの便利な機能が提供されているため、専用のエディタを使用して編集することをお勧めします。
アセンブリ言語は、プロセッサアーキテクチャのマシン語命令と密接に連携する低レベルプログラミング言語です。アセンブリコードは .asm ファイルに保存されます。最初のアセンブラは1940年代後半に作成されました。この言語は、CやPascalなどの高レベル言語が登場する1980年代(アーキテクチャによっては1990年代)まで非常に一般的でした。高レベルプログラミング言語は、よりクリーンな構文と直感的なプログラミングインターフェースを提供し、機能を大幅に拡張しました。それにもかかわらず、パフォーマンスが極めて重要な場合や、ハードウェアと直接やり取りする必要がある場合(OSカーネル、ブートローダー、組み込みファームウェア、デバイスドライバなど)には、現在でもアセンブリが選択されます。
アセンブリ言語は、CPUを直接標的にし、多くのオペレーティングシステムのルーチンをバイパスするマルウェアやコンピュータウイルスの作成にも使用されます。
.asm ファイルに保存されたソースコードは、コンパイラではなくアセンブラによって処理され、マシン語のオブジェクトファイル (.obj または .o) に変換される必要があります。その後、リンカーが1つ以上のオブジェクトファイルを結合して、EXEファイル などの実行可能なファイルを作成します。一般的なアセンブラには、MASM (Microsoft Macro Assembler)、NASM、GNU as (GAS) などがあります。それぞれが独自の「方言」を使用しており、MASM用に書かれた .asm ソースは、通常、修正なしではGASと互換性がありません。
セキュリティと安全性
リスク: LOW.asm の閲覧や編集は完全に安全です。これはプレーンテキストであり、アセンブルして実行するまでは何もしません。リスクは、アセンブルして実行した際にそのコードが「何をするか」にのみ存在します。他のソースと同様に、.asm には悪意のあるロジックが含まれる可能性があり、アセンブリはシェルコードやマルウェアの概念実証によく使われる形式です。見慣れないアセンブリはビルド前に検査し、信頼できない .asm からコンパイルされたバイナリを理解せずに実行しないでください。ファイル自体にマクロや自動実行機能はありません。
形式の詳細
概要- SolidWorks / Pro-ENGINEER (Creo) アセンブリファイル - 一部のCADツールは、バイナリの3Dアセンブリドキュメントに .asm を使用します(Pro/Eの .asm、および非公式にSolidWorks)。これらはバイナリCADファイルであり、アセンブリソースコードとは無関係です。 .sldasm を参照してください。
- 汎用「アセンブリ」データファイル - さまざまなニッチなアプリが、部品アセンブリやビルドアセンブリのデータファイルに .asm という名前を付けます。所有するアプリケーションによって識別してください。
ASM ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルタイプ | プレーンテキスト・アセンブリ言語ソースコード |
| MIMEタイプ | text/x-asm (または text/x-assembly, text/plain) |
| 文字エンコーディング | ASCII または UTF-8。レガシーなDOSソースは CP437 などのコードページを使用する場合があります |
| ファイルシグネチャ | なし - マジックバイトはありません。拡張子と内容(ニーモニックやディレクティブ)によって識別されます |
| 行構造 | 各行には、オプションのラベル、オペランドを伴うニーモニック、およびオプションのコメントが含まれます |
| コメント構文 | MASM/NASMでは «;»、GNU as (GAS)では «#» または «@»、一部の6502/68kアセンブラでは «*» |
| 典型的なファイルサイズ | 1 KB - 500 KB。生成されたリスティングファイルはより大きくなる場合があります |
| 出力成果物 | オブジェクトファイル (.obj / .o) にアセンブルされ、その後実行ファイルにリンクされます |
| 一般的なアセンブラの方言 | MASM, NASM, GNU as (AT&T構文), TASM, ARM/Keilアセンブラ |
| ターゲットISA | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80, その他多数 |
| 方言のポータビリティ | 修正なしではアセンブラの方言間で互換性はありません。構文やディレクティブが大きく異なります |
| マクロのサポート | ほとんどのアセンブラでサポートされています:MASMでは MACRO/ENDM、NASMでは %macro/%endmacro、GASでは .macro/.endm |
| インクルード機構 | INCLUDE (MASM), %include (NASM), .include (GAS) - ソースを複数のファイルに分割します |
| 典型的なユースケース | OSカーネル、ブートローダー、ファームウェア、暗号化ルーチン、ゲームエンジンのホットパス、マルウェア解析 |
| リリース日 | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| 最新バージョン | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | sourceware.org |
ASM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。ASM ファイルについて最初の質問をしてみましょう。