簡體   English   中英

如何在 VS 2019 中使用 c++ 編寫 x64 程序集?

[英]How to program x64 assembly with c++ in VS 2019?

我正在嘗試使用 Visual Studio 2019 獲得一個非常簡單的 x64 程序集,但它一直給我“致命錯誤 LNK1120: 1 unresolved externals” 我確保在構建依賴項中檢查了 masm,這是在 x64 模式下; 所以,不知道還能做什么,因為這是我對 asm 的第一次嘗試。 任何幫助將不勝感激! 謝謝。

#include <iostream>
using namespace std;
extern "C" int someNumber();
int main() {
cout << "Number: " << someNumber() << endl;
return 0;
}

.code
someNumber proc
    mov rax, 222
    ret
someNumber endp
end

您需要為程序集源文件創建自定義構建工具(或步驟)。 右鍵單擊程序集源文件名,然后屬性,...,自定義構建工具...。

對於調試版本:

Command Line   ml64 /c /Zi /Fo$(OutDir)\someNumber.obj someNumber.asm
Outputs        $(OutDir)\someNumber.obj

對於發布版本,相同的行但沒有 /Zi

Command Line   ml64 /c /Fo$(OutDir)\someNumber.obj someNumber.asm
Outputs        $(OutDir)\someNumber.obj

在 someNumber.asm 中,您需要將該函數聲明為 public:

        .code
        public someNumber
someNumber proc
        mov     rax, 222
        ret
someNumber endp
        end

VS2019 匯編器 ML64 默認為“C”模型,因此不需要在名稱前加上“_”。

暫無
暫無

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

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