我正在尝试使用一些汇编代码来了解它是如何工作的,但在我的第一个例子中,我遇到了缓冲区溢出异常。我正在使用VS2013快递版,我正在使用c ++代码通过使用extern" C"来使汇编代码工作。功能。我试图改变一些VS选项,但它没有用。有什么理由可以提供缓冲区溢出异常,而这是一个非常简单的语句。通常我在没有mov语句的情况下构建和执行。
编辑:只需为宏添加一个ret语句,问题就解决了。
这是assmbly部分:
.586
.model flat,c
.data
.code
doit proc
mov eax, 8
doit endp
end
这里是c ++部分:
extern "C" void doit();
void main()
{
doit();
}
答案 0 :(得分:-1)
原因是汇编程序没有ret
语句。所以程序的行为是不确定的。:)