在单独的文件中编译程序集时出现编译错误

时间:2013-02-23 16:29:25

标签: c++ assembly

这是我(非常简单)的程序。当函数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

这是我第一次使用Assembly,所以我不熟悉这些错误。他们是什么意思,我该如何让这个程序运作?

1 个答案:

答案 0 :(得分:0)

你应该有一个.model和一个cpu声明,通常还有一个堆栈声明。 看看这里: http://www.talreg.com/?cat=58