.386 .model flat,stdcall option casemap:none include windows.inc include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib .data ;数据段 titleS db 'helloworld',0 messageS db 'hello,welcome to win32',0 .code ;代码段 start: invoke MessageBox,NULL,offset messageS,offset titleS,MB_OK invoke ExitProcess,NULL end start
MessageBox API:
int MessageBox(
    HWND     hWnd,         ;是否有父窗体
    LPCTSTR  lpText,      ;对话框中显示的字符串起始地址,字符串必须以0结束
    LPCTSTR  lpCaption,   ;对话框标题字符串起始地址,字符串必须以0结束
    UINT     uType         ;表示对话框按钮的形式
    );
uType:对话框的形式可以是以下种类 
   符号              数值      含义  
   MB_OK               0h      只显示确定按钮 
   MB_OKCANCEL         1h      显示确定与取消 
   MB_ABORTRETRYIGNORE     2h      显示终止,重试,掠过三个按钮  
   MB_YESNOCANCEL          3h      显示是,否,取消三个按钮    
   MB_YESNO            4h      显示是否,两个按钮

返回值:MessageBox的返回值保存在EAX寄存器中    
   符号          数值      含义  
   IDOK            1h      按下确定按钮  
   IDCANCEL        2h      按下取消按钮  
   IDABORT         3h      按下终止按钮  
   IDRETRY         4h      按下重试按钮  
   IDIGNORE        5h      按下忽略按钮  
   IDYES           6h      按下是 
   IDNO            7h      按下否

uType对话框中的图标:MB_OK or MB_ICONINFORMATION(显示一个确定对话框和一个消息图标)  
   MB_ICONWARNING      惊叹号图标   
   MB_ICONINGORMATION  消息图标    
   MB_ICONASTERISK     危险图标    
   MB_ICONQUESTION     问号图标    
   MB_ICONSTOP     停止图标
invoke伪指令:调用API函数指令,相当于CALL调用
ML.EXE编译invoke时依次将参数入栈      .model定义了stdcall参数从右向左依次入栈 
              最后的参数最先入栈  PUSH MB_OK                               
               PUSH offset titleS                      
               PUSH offset messageS                                
               PUSH  NULL                 
       并调用CALL指令   CALL MessageBox
MessageBox函数定义在user32.inc库文件中

ExitProcess API:结束程序

.data 定义数据段, .code 定义代码段
没有结束伪指令,因为一个段的开始即是前一个段的结束

程序的入口由end语句指明,end start 程序从start标号处执行
												

Win32 一个helloworld对话框相关推荐

  1. 【win32】Helloworld

    更加应该说是一个普通Win32程序的Hello world.一直以来VC6.0常常是用来考试的,学校所教的程序都是一些DOS界面的控制台程序,即便是到了C++,当初憧憬满满的以为是从DOS界面升级到W ...

  2. 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 -首页所有文章资讯Web架构基础技 ...

  3. VS如何新建一个基于对话框的MFC工程并添加按钮

    学习MFC的初学者,入门的步骤很重要,新建一个基于对话框的MFC应用程序,并通过拖拉按钮等,初步搭建自己的MFC工程. 工具/原料 笔记本电脑 VS2010 方法/步骤 打开VS2010,并新建MFC ...

  4. zynq学习02 新建一个Helloworld工程

    http://www.cnblogs.com/Rmumu/p/5705502.html http://www.cnblogs.com/151009-on-the-way/p/5777848.html ...

  5. MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决

    MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决 参考文章: (1)MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决 (2)https://www.cnblogs.co ...

  6. [Win32]一个调试器的实现(四)读取寄存器和内存

    [Win32]一个调试器的实现(四)读取寄存器和内存 作者:Zplutor  出处:http://www.cnblogs.com/zplutor/  本文版权归作者和博客园共有,欢迎转载.但未经作者同 ...

  7. 每隔10秒钟打印一个“Helloworld”

    /*** 每隔10秒钟打印一个"Helloworld"*/ public class Test03 {public static void main(String[] args) ...

  8. 一个HelloWorld网站

    一个HelloWorld网站 点击直达 介绍 很多技术在里面都有很多的HelloWorld 当初是我在windows下使用redis在官方文档没有找到入门的资料发现的 个人理解 作为HelloWorl ...

  9. JAVA入门级教学之(编写第一个HelloWorld程序)

    目录 1.创建一个HelloWorld.java文件 2.用记事本打开HelloWorld.java 3.接下来我们要完成xxx.java-->xxx.class的步骤 怎么解决javac不可用 ...

最新文章

  1. Ubuntu21.04 Docker 安装
  2. 关系数据库中,表中的每行就是一个对象
  3. oracle用户创建和授权(一)
  4. Microsoft Windows 7.0 build 7000 NAP测试--健康状态检测验证报告
  5. Jquery中的this是什么类型
  6. 使用 Redis 实现 Session 共享
  7. mysql 定义游标_mysql 游标的使用
  8. 学生成绩管理系统c语言直方图,Excel表格的25招必学秘技 电子表格常用技巧大全...
  9. mysql cleaned up_关于mysqld自动停止的问题
  10. Docker 容器的--restart参数
  11. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
  12. 【看表情包学Linux】Redirect 重定向 | 时间相关指令 | 文件查找 | 打包与压缩
  13. 关于xp系统下的IIS 500错误
  14. [初学Verilog笔记]使用assign还是always
  15. java单例模式构造器初始化_秒懂java单例模式,java私有构造器与一夫一妻制
  16. 问渠哪得清如许?为有源头活水来。——AI与传统文化会碰撞出何种火花呢?
  17. Linux学习笔记-RH135之Apache的管理及优化
  18. 【无障碍】自动朗读的弹窗和浮层实现
  19. 1.4_6 Axure RP 9 for mac 高保真原型图 - 案例5 【旋转的唱片3】进度条_滚动
  20. 如何防止php漏洞,关于如何防止PHP漏洞?

热门文章

  1. dhtmlXGrid复选框点击事件
  2. ssm 静态资源处理器
  3. 查看mysql 中建立的表空间_mysql 表空间及索引的查看
  4. mssql 远程无法连接mysql_在本地 怎么远程连接MSSQL数据库
  5. 教你玩转CSS 提示工具(Tooltip)
  6. C语言 删除文件 M,最全的C盘可删除文件清单
  7. 哥斯拉Webshell
  8. kali安装docker(有效详细的教程)
  9. 前端微信小程序实战篇
  10. 复习上学期的HTML CSS(1)