.486 .model flat,stdcall option casemap:none ; case sensitive ;http://www.popbook.com/wbbs/topic.asp?l_id=5&t_id=2294 include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib include \masm32\include\user32.inc includelib \masm32\lib\user32 ABCCC struct String1 DWORD ? String2 DWORD ? String3 DWORD ? ABCCC ends .const ; dbtext db "hello",0; dbtitle db "title",0; .data testst ABCCC <"A","b","c"> .code start : call main; invoke ExitProcess,eax; testfnvar proc C var_1 ret; testfnvar endp main proc mov esi, OFFSET testst; assume esi:ptr ABCCC; ;给寄存器声明结构 ;类型 pre 变量名 ;转换类型 mov eax, [esi].String1; invoke MessageBox, NULL, addr [esi].String1, addr dbtitle, MB_OK; invoke testfnvar ,1 ; main endp testfn proc local @l1:dword; local @l2:word; local @l3:word; mov eax,@l1; mov ax,@l2; mov bx,@l3; invoke MessageBox ,NULL, addr dbtext,addr dbtitle,MB_OK; ;ret; testfn endp end start
notepad++ 配置
安装 nppexec插件
在插件菜单里添加
npp_save echo $(CURRENT_DIRECTORY) echo $(FILE_NAME) echo $(NAME_PART) cd $(CURRENT_DIRECTORY) D:\masm32\bin\ml /c /coff /Cp $(FILE_NAME) D:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:D:\masm32\lib $(NAME_PART).obj $(CURRENT_DIRECTORY)\$(NAME_PART).exe