helloMasm



TARGET=helloMasm

.PHONY: all test mmm clean html
.SUFFIXES: .obj
LOPT=/SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib

all: $(TARGET).exe

$(TARGET).exe: $(TARGET).obj
        link $(LOPT) $<

$(TARGET).obj: $(TARGET).asm
        ml -c $<

test: $(TARGET).exe
        ./$(TARGET).exe

mmm:
        cat makefile
        cat $(TARGET).asm

clean:
        -rm $(TARGET).exe *.obj *~

html:
        cat /dev/clipboard | code2html
cat helloMasm.asm
.586
.model flat, stdcall
NULL            EQU     0

MessageBoxA     proto :dword, :dword, :dword, :dword
ExitProcess     proto :dword

.data
MSGBOX_TITLE   DB 'masm test', 0
MSBBOX_MESSAGE DB 'Hello World', 0

.code
WinMainCRTStartup   proc
    invoke MessageBoxA, NULL, offset MSBBOX_MESSAGE, offset MSGBOX_TITLE, 0
    invoke ExitProcess, 0
    ret
WinMainCRTStartup   endp
end