第一个win32汇编程序

Win32编程

This is code

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;数据段
.data
szCaption db ‘来自酒猫’,0
szText db ‘Hello World’,0
szText_OK db ‘您刚点了OK按钮’
szCANCEL db ‘您刚点了CANCEL按钮’

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
invoke MessageBox,NULL,offset szCaption,MB_OKCANCEL or
MB_INCONQUESTION
cmp eax, IDOK
je OK
invoke MessageBox,NULL,offset szCANCEL,offset szCaption,MB_OK
jmp GO
OK: invoke MessageBox,NULL,offset szOK,offset szCaption,MB_OK
GO: invoke ExitProcess,NILL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start

1
2
Makefile
-------

EXE = hello.exe #指定输出文件
OBJS = hello.obj #需要的目标文件
RES = Fishc.res #需要的资源文件

LINK_FLAG = /subsystem:windows #连接选项
ML_FLAG = /c /coff #编译选项

$(EXE): $(OBJS) $(RES)
Link $(LINK_FLAG) $(OBJS) $(RES)

.asm.obj:
ml $(ML_FLAG) $<
.rc.res:
rc $<

clean:
del .obj
del
.res

------ 本文结束------
分享
分享