| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 兰陵月 于 2018-3-13 00:46 编辑  
 
源程序: 
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; ******************【程】***【序】***【信】***【息】******************
 
 - ;------------------------------------------------------------------------
 
 - ; 程序基本信息
 
 - ;------------------------------------------------------------------------
 
 - ; 程序名称:SB.asm
 
 - ; 程序功能:调用MessageBox函数生成一个对话框,演示基本功能的Windows程序
 
 - ; 编辑软件:Notepad++  编码格式:ANSI
 
 - ; 创建日期:2018.03.12
 
 - ; 创 建 者: by 鱼C论坛  兰陵月  QQ:2186745820
 
 - ;------------------------------------------------------------------------
 
 - ; MakeFile 文件
 
 - ;------------------------------------------------------------------------
 
 - ;NAME = SB
 
 - ;OBJS = $(NAME).obj
 
 - ;LINK_FLAG = /subsystem:windows
 
 - ;ML_FLAG = /c /coff
 
 - ;$(NAME).exe: $(OBJS)
 
 - ;        Link $(LINK_FLAG) $(OBJS)
 
 - ;.asm.obj:
 
 - ;        ml $(ML_FLAG) [        DISCUZ_CODE_0        ]lt;
 
 - ;clean:
 
 - ;        del *.obj
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
  
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; 【模式定义】
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 -                                         .386
 
 -                                         .model flat,stdcall
 
 -                                         option casemap: none
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
  
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; 【include 文件定义】
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - include                        windows.inc
 
 - include                        user32.inc
 
 - includelib                user32.lib
 
 - include                        kernel32.inc
 
 - includelib                kernel32.lib
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
  
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; 【Equ等值定义】,对应资源代码文件中的define部分
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; ×××        equ                ×××
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
  
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; 【数据段】
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ;------------------------------------------------------------------------
 
 - ; 可读可写已初始化变量
 
 - ;------------------------------------------------------------------------
 
 -                                         .data
 
 - ;------------------------------------------------------------------------
 
 - szCaption                db        '鱼C论坛-汇编语言交流-by 兰陵月',0
 
 - szText                        db        '这就是消息框内的消息内容......',0dh
 
 -                                 db        'MessagBox函数原型:',0dh
 
 -                                 db  'MessagBox hWnd, IpText, IpCaption, UType',0
 
 - szTextCs1                db        '消息内容不分行情况:',0dh,0ah
 
 -                                 db        '鱼C论坛好;','鱼C论坛妙;','鱼C论坛呱呱叫!',0
 
 - szTextCs2                db        '消息内容分行情况:(在要分行的地方加0dh,0ah)',0dh,0ah
 
 -                                 db        '鱼C论坛好;',0dh,0ah,'鱼C论坛妙;',0dh,0ah,'鱼C论坛呱呱叫!',0
 
 - szTextCs3                db        '消息内容分行情况:',0dh,'(在要分行的地方加0dh和0ah,或者只需要其中任意一个也行,原因不清楚!)',0ah
 
 -                                 db        '鱼C论坛好;',0dh,'鱼C论坛妙;',0ah,'鱼C论坛呱呱叫!',0
 
 - szTextCs4                db        '将第三个参数lpCaption的值变为NULL。',0dh
 
 -                                 db  'MessagBox NULL, offset szTextCs4, NULL, MB_OK',0ah
 
 -                                 db        '请看消息框标题栏的变化情况,变成了“错误”二字!',0
 
 - szTextCs5                db        '将函数的uType参数值变为:',0dh,'MB_ABORTRETRYIGNORE(十六进制值0x02)',0ah
 
 -                                 db  'MessagBox NULL, offset szTextCs5, NULL, MB_ABORTRETRYIGNORE',0
 
 - szTextCs6                db        '将函数的uType参数值变为:',0dh,'MB_CANCELTRYCONTINUE(十六进制值0x06)',0ah
 
 -                                 db  'MessagBox NULL, offset szTextCs6, NULL, MB_CANCELTRYCONTINUE',0
 
 - ;------------------------------------------------------------------------
 
 - ; 可读可写未初始化变量
 
 - ;------------------------------------------------------------------------
 
 - ;                                        .data?
 
 - ;------------------------------------------------------------------------
 
 - hInstance                dd        ?
 
 - ;------------------------------------------------------------------------
 
 - ; 可读不可写初始化常量
 
 - ;------------------------------------------------------------------------
 
 - ;                                        .const
 
 - ;------------------------------------------------------------------------
 
 - ; ×××变量定义区×××
 
 - ;------------------------------------------------------------------------
 
  
- ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 - ; 【代码段】
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 -                                         .code
 
 - ;------------------------------------------------------------------------
 
 - start:
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szText,\
 
 -                                         offset szCaption,\
 
 -                                         MB_OK or MB_TASKMODAL
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szTextCs1,\
 
 -                                         offset szCaption,\
 
 -                                         MB_OK                        
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szTextCs2,\
 
 -                                         offset szCaption,\
 
 -                                         MB_OK
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szTextCs3,\
 
 -                                         offset szCaption,\
 
 -                                         MB_OK
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szTextCs4,\
 
 -                                         NULL,\
 
 -                                         MB_OK
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szTextCs5,\
 
 -                                         NULL,\
 
 -                                         MB_ABORTRETRYIGNORE
 
 -                 invoke                MessageBox,\
 
 -                                         NULL,\
 
 -                                         offset szTextCs6,\
 
 -                                         NULL,\
 
 -                                         MB_CANCELTRYCONTINUE or MB_ICONEXCLAMATION or MB_TASKMODAL
 
 -                 invoke                ExitProcess,\
 
 -                                         NULL
 
 - ;------------------------------------------------------------------------
 
 - ; 程序起始点
 
 - ;------------------------------------------------------------------------
 
 -                 end                        start
 
 - ;------------------------------------------------------------------------
 
 - ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 -                 
 
 -                 
 
 -                         
 
  复制代码 
 
MAKEFILE文件内容: 
- NAME = SB
 
 - OBJS = $(NAME).obj
 
  
- LINK_FLAG = /subsystem:windows
 
 - ML_FLAG = /c /coff
 
 - $(NAME).exe: $(OBJS)
 
 -         Link $(LINK_FLAG) $(OBJS)
 
  
- .asm.obj:
 
 -         ml $(ML_FLAG) [        DISCUZ_CODE_1        ]lt;
 
  
- clean:
 
 -         del *.obj
 
  复制代码 
 
运行结果: 
 
 
 
 
 
 
 
 
 
 
 
 
另外,经过试验,字符数目最多允许252个,如果超过252个,则编译不会成功。字符显示的时候会自动换行,可能是80个一行。 
下图表示刚好显示252个字符: 
 
 
下图表示超过252个字符情况,显示编译不成功: 
 
 
 |   
- 
 
 
 
- 
 
 
 
 
 
 
 
 |