簡體   English   中英

MS Visual Studio 2010如何使用.asm生成的文件

[英]MS Visual Studio 2010 how to use the .asm generated file

我想問一些我正在嘗試使用Visual Studio 2010的問題。

我通過在項目屬性-> C / C ++->輸出文件(/ FAs)中將選項設置為“匯編程序輸出”,從.cpp文件生成.asm文件。

我的問題是,如果我想在.asm文件中進行一些修改,然后繼續保持鏈接,我下一步如何使用該.asm生成的文件從該文件再次鏈接,而不再使用.cpp文件。我在裝配級別進行的修改。

如果您可以提供准確的步驟,包括項目屬性中可能需要的正確配置,那將非常有幫助。

我最近做了這個。 這是我在這里給compile-assembly-output-generation-by-vc給出的答案的重復。 事實證明,您仍然可以在MSVC2012的32位模式下執行此操作,但我認為64位模式是沒有希望的。

對於32位模式,這是您要做的。

創建一個空項目和一個源文件Source.cpp

 #include <stdio.h>
 int main() {
     printf("hello world\n");
     return 0;
 }
  1. 右鍵單擊您的項目,然后選擇“ Build Customization”,然后
    按此處所述選擇masm http://www.masm32.com/board/index.php?topic=9231.0
  2. 在C ++ / OutputFiles下,選擇Assembly Output / FA
  3. 在32位模式下發布
  4. Source.asm文件加載到MSVC中,以便您可以查看它。 它還行不通。 仍然需要進行一些更改。
  5. 在C ++ / Optimization下,關閉整個程序優化(刪除/GL )。 這將添加INCLUDELIB MSVCRT
  6. 在鏈接器/高級中,將最后一個選項“圖像具有安全異常處理程序”設置為否( /SAFESEH:NO
  7. 現在,您應該有一個Source.asm文件,它將執行與Source.cpp文件相同的操作。 將Source.cpp從Release目錄復制到與Source.cpp相同的目錄(因此在構建/清理時不會將其刪除)。
  8. Source.asm (作為現有文件)添加到源文件, 然后從構建中刪除Source.cpp
  9. 進行重建,您應該看到“ Hello World”,而無需手動更改任何裝配線。

我已經將此用於更復雜的功能。 我通常在一個單獨的模塊上執行此操作,並在函數名稱上使用extern "C"刪除C ++名稱修飾。

只需將.obj文件拖到項目(Solution Explorer樹)中: 如何將.obj文件包括到項目中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM