我与你共同学习Win32汇编语言-②.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我与你共同学习Win32汇编语言-②.doc

Hey,大家好。我们又见面了 今天我为大家带来第二篇文章。 《我与你共同学习Win32汇编语言-②》 用MASM写出我们第一个程序 Hello word ! 在开始正文前请允许我在啰嗦两句。 这几天我微博上的听众也太少了,整的我都没信心再写下去了。没有人给我提意见我也不知道那点做的不好,你说我的文章还能更好的发展吗? 所以还请大家多多关注下我的微博。 我的微博地址:/kefu3435 好了,废话到此为止开始正文。 我们今天的任务 我们今天的任务就是利用MASM完成下图所示。 怎么样?是不是觉得有点简单呢? 那我来告诉你其实说简单也简单。说难也不难。 用上面这个例子来说明Win32汇编程序的框架。最适合初学者,可不要小看了这个程序。 俗话说的好 “麻雀虽小,五脏俱全”。 永远不要小看”小东西”,往往小东西会给你带来意想不到的惊喜。 好让我们开始动手吧。 Win32汇编源程序 可以这样来说,每一种语言都有其规范的写法,当然Win32也不例外。 也可以用我们生活中的例子来比喻,我们学习语文和英语是两种不同的语言,但两种语言都有最基本的规范写法和规范读音。计算机语言也是如此。开句玩笑话:只要你能学会Win32,那么拿下其他语言也不在话下。 #includestdio.h Main() { Printf(“Hello,Word\n”); } 我相信上面这段程序学过C语言的朋友都不陌生。这就是C语言最著名的Hello,word! 这个程序就是C语言最基本的规范。C语言是一种高级语言,不必为堆栈,数据段,代码段 的定义而考虑。但Win32是低级语言,必须有语言指引它到应该去的地方。 所以 Hello,Word 在Win32汇编中又变成了下面这副摸样。 呵呵,一个Hello,word的程序竟然还会变脸,还能编出多个花样。是不是很好奇呢?那让我们来拆穿它神秘的面具吧! .386 .model flat,stdcall option casemap:none ; ; Include 文件定义 ; include windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib ; ; 数据段 ; .data szCaption db MessageBox !,0 szText db Hello, World !,0 ; ; 代码段 ; .code start: invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK invoke ExitProcess,NULL ; end start (把上述代码放入MASM编译即可使用。) 这个就是我们今天要弄明白并且独自完成的任务。 看了上面代码感觉如何?从一些关键词和语句“顾名思义”也能猜出一些苗条来。对的。Include就是包含文件。 Data就是数据段 Code就是代码段 接下来我们通过这个例子程序逐句逐段的来讲解。 掌握并独自完成MSG源程序 程序的开头是 .386 .model flat,stdcall option casemap:none 这是是指令集、工作模式和格式。 ①模式 (1) .386是汇编语言,在低级宏中已经出现,类似的还有。8086、。486/486p 。386/386p等, 用于告诉编译器本程序中使用的指令集。 也可以这样来说,386看做成中文,则386p看做成英文(当然这都是假设)我现在要和另一个人交流,我是中国人,他也是中国人,肯定要选中文,所以要选386。如果你硬要选英文和别人交流 别人又听不懂免得闹出你的笑话 So … 你懂得。 386p 这个P及是特权指令。Windows分为3层 0是优先级,最高级别。3级是最低级,我们的应用程序就是3级例如:游戏,QQ,浏览器…… 而0级则是我们的驱动程序了。 (2) .model语句 也是在低版本的宏中出现……它的使用方法如下 .model 内存模式 [语言模式],[其他模式] 内存模式如下表: 语言模式我们通常填入stdcall 是函数调用方式。其他模式我们省略。 (3) Option语句 Option是对程序中的便利子程序名是否对大小写敏感,API调用函数是区分大小写的所以我们需填入 option casemap:none。 ②段 (1) 把上列程序的语句归纳一下,得到下面这个模式 .386 .model flat,stdcall .option casemap:none Include定义 .Data 一些变量、常量、字符(串)

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档