0

これは私の(非常に単純な)プログラムです。function関数が自分の .cpp ファイル内にある場合は完全に機能しますが、別の.asmファイルにリンクするとエラーが発生します。Visual C++ 2010 Express でコンパイルしていますが、これは私が使用している 32 ビット アセンブリだと思います。

#include <iostream>

extern "C" int function();

int main() {

    std::cout << function();

    std::cin.get();
}

functionと定義されている:

.code

function proc
    mov eax, 50

    ret
function endp

end

そして、私はエラーを取得しています:

error A2013: .MODEL must precede this directive
error A2034: must be in segment block : function
error A2034: must be in segment block
error A2034: must be in segment block
fatal error A1010: unmatched block nesting : function

アセンブリを使用するのはこれが初めてなので、これらのエラーに慣れていません。それらは何を意味し、このプログラムを機能させるにはどうすればよいですか?

4

1 に答える 1

0

.model と cpu の宣言が必要で、通常はスタックの宣言も必要です。こちらをご覧ください: http://www.talreg.com/?cat=58

于 2013-02-23T16:36:44.320 に答える