为什么我的代码不运行?

时间:2014-02-17 07:03:51

标签: assembly

我正在尽力弄清楚为什么这段代码无法运行。 VS express 2010宣布“无法找到或打开PDB文件”,并且“myname.exe已触发断点”。 请帮忙!

; This program computes 5!
.386
.model flat
.stack 4096
.data
factorial dword ?
.Code
_start:
mov eax , 5
mov ebx , 5
sub ebx , 1
mul ebx
sub ebx , 1
mul ebx
sub ebx , 1
mul ebx
sub ebx , 1
mul ebx
mov factorial , eax
public _start    
end

1 个答案:

答案 0 :(得分:0)

你的代码没有尽头。函数结束时没有返回语句。 end是汇编程序的指令,它不生成任何代码。汇编器将使用int3指令填充代码段的其余部分,以便在有人试图在有效代码块之外执行代码时激发所述断点中断。

要修复代码,最好在函数周围创建一个堆栈框架。