编写用户定义的函数

时间:2015-12-13 10:30:34

标签: assembly x86 masm 32-bit irvine32

我不知道为什么这段代码不起作用。我想在MASM中调用用户定义函数。我是否需要在程序中定义原型?

这是我的代码:

include Irvine32.inc
.code

     main proc
     call clrscr
     mov eax,60000h
     call sum1
     call dumpregs
     exit
main endp
end main
sum1 proc
    add eax,20000h
    ret
sum endp

1 个答案:

答案 0 :(得分:2)

通过将end main放在文件的中间而不是最后,您似乎提前结束了文件:

main endp
end main
sum1 proc
    add eax,20000h
    ret
sum endp

end main之后的所有内容都不会发出代码。将end main放在文件末尾。带有标签的END指令将标记文件的结尾,并告诉汇编程序代码将开始执行的入口点位于标签main

您的代码可能如下所示:

include Irvine32.inc
.code

main proc
     call clrscr
     mov eax,60000h
     call sum1
     call dumpregs
     exit
main endp
sum1 proc
    add eax,20000h
    ret
sum endp
end main

您的原始代码可能会导致sum1显示为未定义到链接器。我希望链接器通知您无法找到函数sum1