Any specific reason to use segmented directives? Here is an easier version :
include \masm32\include\masm32rt.inc
.code
MyFunc PROC x:DWORD,y:DWORD
LOCAL var:DWORD
mov eax,x
mov var,eax
mov eax,y
add var,eax
mov eax,var
ret
MyFunc ENDP
END
include \masm32\include\masm32rt.inc
includelib MyLib.lib
MyFunc PROTO :DWORD,:DWORD
.data
format1 db '90 + 10 = %d',0
.data?
buffer db 32 dup(?)
.code
start:
invoke MyFunc,90,10
invoke wsprintf,ADDR buffer,ADDR format1,eax
invoke StdOut,ADDR buffer
invoke ExitProcess,0
END start
\masm32\bin\ml /c /coff MyFunc.asm
\masm32\bin\ml /c /coff Demo.asm
\masm32\bin\lib /OUT:MyLib.lib MyFunc.obj
\masm32\bin\polink /SUBSYSTEM:CONSOLE Demo.obj