- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 内存管理部分 2
标 题: 【原创】windows下32位汇编语言学习笔记 第十章 内存管理部分 2作 者: jasonnbfan时 间: 2009-05-23,01:24:25链 接: /showthread.php?t=89608windows下32位汇编语言学习笔记?第十章?内存管理部分?2这两天通过写汇编程序,越来越发现汇编很有意思。自己规划每一个寄存器的使用,设计每一个跳转和分支,这不同于使用其他高级语言,所有资源对于编程者都是透明的,让我有一种尽在掌握的感觉,而且每写一个程序都很有成就感,这是我用别的语言写程序所没有的感觉。不管学习什么东西,实践是最重要的,计算机程序设计这种实践性很强的科目更是如此。有的东西看似简单,实际动起手来可就不那么容易了,所以必须要告诫大家,学习计算机程序设计,必须要勤动手,不能懒惰。如果你能够把?windows程序设计,windows核心编程,windows32位汇编语言,这3本书的所有例子自己用汇编写一遍,我可以很负责的告诉你,你已经是高手了。言归正传,笔记继续汇编的跳转,分支,循环指令在继续程序之前,我觉得有必要把汇编的跳转,分支,循环指令总结一下,有一点必须要清楚,我们现在的目的是学习汇编,为将来的更深入的学习逆向打下良好的基础。这两天在写程序的过程中,我发现我背离了我的初衷,看看以前我的代码例子,完全是用C程序的思路换成汇编语法,包括罗云彬这本书里的例子程序也是如此。大量的条件判断使用masm伪指令,比如.if,虽然使用这种伪指令的汇编程序更利于阅读,结构更加清晰,但是,我感觉根本没有学到汇编的精髓,或者说没有立即汇编的真谛。标号:标号的定义是,代码中的某个具体位置。在我们的源代码中,标号就好比书签,让我们设计分支,循环语句时引导程序的运行流程。在编译器中,标号的意义在于标志处跳转指令和目的地址的范围,用以计算这段范围内的字节数,用于生成机器码。为什么我这么理解,用jmp指令举个例子,先看看下面的代码,这是一个典型的Dialog窗口回调函数。_DlgProc?proc?hwndDlg,uMsg,wParam,lParam??mov?eax,uMsg??cmp?eax,WM_COMMAND??jne?_init??invoke?_DlgCmd,hwndDlg,wParam,lParam??jmp?_ret_init:????????????????;标记处理init消息????????????????cmp?eax,WM_INITDIALOG??jne?_close??invoke?LoadIcon,hInstance,IDI_VMALLOC??invoke?SendMessage,hwndDlg,WM_SETICON,ICON_BIG,eax??jmp?_initret_close:??????????????;标记处理close消息??cmp?eax,WM_CLOSE??jne?_ret??invoke?EndDialog,hwndDlg,0??jmp?_ret_initret:??????????????;对于WM_INITDIALOG消息,处理完成后必须返回1??mov?eax,TRUE_ret:????????????????;标记返回????????????????mov?eax,FALSE??ret_DlgProc?endp这是一个正真的(指不用伪指令)汇编语言程序,里面用到得其他转移以后再说,现在先看jmp指令,刚才我说了,在我们的源代码里,标号就好比书签的作用,通过标号,我们指定程序的运行流程。再看看这段程序反汇编以后的内容,先只关注里面的jmp指令.?/.??55????????????PUSH????EBP?|.??8BEC??????????MOV?????EBP,?ESP0040148A??|.??8B45?0C???????MOV?????EAX,?DWORD?PTR?SS:[EBP+C]0040148D??|.??3D??CMP?????EAX,?111?????????牋牋牋牋牋牋牋牋;牋Switch?cases?0..111)|.牋75?0牋牋牋牋燡NZ牋牋燬HORT燤yVMAllo.004014A4|.牋FF75?4牋牋牋燩USH牋牋DWORD燩TR燬S:[EBP+14]牋牋牋牋牋牋;?Arg3;燙ase?11?WM_COMMAND)爋f爏witch?040148D|.牋FF75?0牋牋牋燩USH牋?
您可能关注的文档
- 2、设备和文件IO.ppt
- 你不知道的javascript技巧.doc
- MFC CListCtrl的用法详解.docx
- CList控件使用方法1.doc
- 北大3G授课--JNI与Android下C和C++组件及IBinder等.ppt
- ListControl使用范例.doc
- 大三语言学基础Week-IV-&-V:A-Brief-Intro.-to-Linguistics(History-and-Branches).ppt.ppt
- SCJP题库 带达内考点分析⑤_⑧答案.doc
- 2011年计算机二级VB考试记录文件考前冲刺习题及答案.doc
- 多媒体创作技术3.ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
最近下载
- 制造企业数字化中台技术中台数据中台业务中台建设方案(20页PPT).pptx VIP
- 防跑道侵入考试卷附答案.doc
- 3-1牛顿第一定律(解析版)—2024高考物理一轮复习100考点100讲.docx VIP
- 社会治安管理处罚法全文.docx VIP
- SL252-2017 水利水电工程等级划分及洪水标准.pdf VIP
- 监理例会会议纪要范文.docx VIP
- 新时代下黄河文化融入高校校园文化建设的路径探索.docx VIP
- SL260-2014 堤防工程施工规范.docx VIP
- 公司治理与股权激励董.pptx VIP
- 新解读《GB_T 12604.3-2013无损检测 术语 渗透检测》最新解读.docx VIP
文档评论(0)