2017-01-05 28 views
3

我開始學習彙編語言。我在基礎層面熟悉它。我想知道,Assembly中有多大的應用程序是組織的,也就是說,我怎樣才能將它們分解成模塊/包並將它們包含到其他模塊中?我特別在談論NASM。如何將NASM應用程序分解爲模塊/包幷包含它們?

+1

(這是嚴重的意見偏置,所以採取與一粒鹽)大裝配應用通常被組織爲C++程序,使用大會只對少數最關鍵的部分。使用合理編寫的C++源代碼,生成的機器代碼的平均質量將輕鬆勝過手寫彙編,並且在編譯器初次使用之後,少數關鍵部分也更容易調整。所以不要指望爲大規模項目管理找到一些高度複雜的工具。其實有幾個,叫做C,C++,Java,C#等等......) – Ped7g

+0

@Ped7g,不正確。 – ako25

回答

3

您可以:

  • 使用%include
    包含一個外部文件到當前一個。
    這可以通過-i命令行開關進一步控制。

    您還可以強制NASM預包括使用-p交換機上的文件。

  • 組裝多個文件
    由於NASM不是一個鏈接,你可以採取的鏈接器的能力的優勢...好,鏈接文件一起。

    使用GLOBAL指令,使一組對其它模塊可見的符號。
    使用EXTERN指令從其他模塊導入一組符號。

    可以將所有對象文件傳遞給鏈接器。
    NASM(與今天一樣)一次只能組裝一個文件,因此需要構建腳本。


上述兩者並不相互排斥的,但你必須瞭解基本的NASM output file formats看到,當後者是適用的。

相關問題