1
2;--- 32-bit mixed-language sample.
3;--- Main program is assembly, and CRT functions can be used.
4;--- 1. Using MS VC
5;---   assemble: jwasm -coff Mixed232.asm
6;---   link:     link Mixed232.obj \msvc\lib\libc.lib /out:Mixed2.exe
7;--- 2. Using Digital Mars C++
8;---   assemble: jwasm -DDMC Mixed232.asm
9;---   link:     \dm\bin\link Mixed232.obj,Mixed2.exe,,kernel32.lib user32.lib snn.lib;
10;--- 3. Using Open Watcom ("stack-based" RTL)
11;---   assemble: jwasm -zcw Mixed232.asm
12;---   link:     wlink format windows nt runtime console
13;---                file mixed232.obj
14;---                libpath \watcom\lib386\nt
15;---                lib clib3s.lib, kernel32.lib, user32.lib
16;---                op start=mainCRTStartup, stack=0x10000, heap=0x10000
17;--- 4. Using Open Watcom ("register-based" RTL)
18;---   assemble: jwasm -zf1 -DOW Mixed232.asm
19;---   link:     wlink format windows nt runtime console
20;---                file mixed232.obj
21;---                libpath \watcom\lib386\nt
22;---                lib clib3r.lib, kernel32.lib, user32.lib
23;---                op start=mainCRTStartup, stack=0x10000, heap=0x10000
24
25    .386
26ifdef OW
27    .MODEL FLAT, fastcall
28else
29    .MODEL FLAT, c
30endif
31    option casemap:none
32
33ifdef DMC
34extern _acrtused_con:abs    ;tell Digital Mars OPTLINK what we want
35endif
36
37printf proto :ptr BYTE, :VARARG
38
39    .CONST
40
41szHello  db 10,"hello, world.",10,0
42
43    .CODE
44
45main proc
46
47    invoke  printf, addr szHello
48    xor     eax,eax
49    ret
50main endp
51
52    END
53