2017-01-05 4 views
3

私はアセンブリ言語を学び始めています。私は基本レベルでそれに精通しています。私はアセンブリの大きなアプリケーションがどのように構成されているのか、つまりモジュール/パッケージにどのように分割して他のモジュールに組み込むことができるのだろうかと思います。私は特にNASMについて話しています。NASMアプリケーションをモジュール/パッケージに分割して含めるにはどうすればいいですか?

+1

(これは大量の意見に偏っているため、塩分を取りません)大規模なアセンブリアプリケーションは、通常、C++アプリケーションとして編成されています。合理的に書かれたC++ソースでは、生成されたマシンコードの平均品質が手書きのアセンブリよりも優れているだけでなく、コンパイラが最初に実行した後もチューニングするのが簡単です。したがって、大規模プロジェクト管理のための高度に洗練されたツールを見つけることは期待しないでください。実際にはC、C++、Java、C#などと呼ばれるいくつかあります;) – Ped7g

+0

@ Ped7g、間違っています。 – ako25

答えて

3

次のいずれかを実行できます

  • 使用し%include
    現在の1に外部ファイルをインクルードします。
    これは、-iコマンドラインスイッチでさらに制御することができます。

    また、-pスイッチを使用してNASMにファイルを事前に含めることもできます。

  • NASMはリンカーではないので、あなたが一緒にリンカーの能力に...よく、リンクファイルを利用することができ、複数のファイルに
    を組み立てます。

    GLOBALディレクティブを使用すると、他のモジュールでシンボルセットを表示できます。
    EXTERNディレクティブを使用して、他のモジュールからシンボルのセットをインポートします。

    すべてのオブジェクトファイルをリンカーに渡すことができます。
    NASM(今日)は、一度に1つのファイルしかアセンブルできないため、ビルドスクリプトが必要です。


上記の二つは相互に排他的ではありませんが、あなたは基本的には後者が適用されたときに表示するNASM output file formatsを理解する必要があります。

関連する問題