(全新)汇编第八章.pptVIP

  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程序设计 第八章 Win32程序设计 8.1 汇编语言Win32程序框架 Win32汇编中对系统功能的调用主要体现在API上,并通过内存中的栈来传递参数。所以,对于?Win32汇编程序的编写更多的并不是对计算机体系结构的理解,而是对大量API调用的深入理解和掌握,还由参数的传递及现场的保护。 8.1 汇编语言Win32程序框架 和16位Windows下的把代码分成DATA、CODE等段的内存模式不同,Win32只有一种内存模式,即FLAT模式,意思是“平坦”的内存模式,再没有64K的段大小限制,所有的WIin32的应用程序运行在一个连续、平坦、巨大的4GB的空间中。 8.1 汇编语言Win32程序框架 8086实模式下的汇编程序结构: .MODEL SMALL .DATA … ;数据段定义 .CODE 标号: ;程序入口 MOV AX, @DATA MOV DX, AX ;装填数据段寄存器 … ;程序实现 MOV AX, 4C00H ;返回操作系统 INT 21H END 标号 ;指明程序入口 8.1 汇编语言Win32程序框架 WIN32应用程序框架 .386 .MODEL Flat, STDCALL include windows.inc include kernel32.inc includelib kernel32.lib .DATA ??? ;初始化数据定义 .DATA??? ?? ;未初始化数据定义 .CONST ?? ;常量定义 .CODE ?? 标号 ;程序入口点 ??? ;程序实现 ??? end 标号 ;指定程序入口点 8.1 汇编语言Win32程序框架 (1)处理器选择伪指令.386 指定编译器程序是使用80386指令集编写的。指令集伪指令还可以使用 .486、.586, 等处理器选择伪指令。对于每一种CPU有两套几乎功能相同伪指令:.386/.386P、.486/.486P、.586/.586P。 带P的指令标明程序中可以用特权级指令。特权级指令是保留给操作系统的,仅仅在开发操作系统及相关程序时使用,如编写虚拟设备驱动程序。在大多数时间,程序都无须运行在RING0层,故用不带后缀P的伪指令已足够了。 8.1 汇编语言Win32程序框架 (2)存储模式伪指令.MODEL FLAT,STDCALL .MODEL 是用来指定内存模式,在Win32下,只有一种内存模型,那就是FLAT,即平坦的内存访问模式,没有64KB段大小限制。“平坦”意味着从0一直延伸到4GB的随意不分段访问。 STDCALL 告诉编译器参数的传递约定,是汇编语言与高级语言程序混合编程时进行参数传递所约定的伪指令,参数的传递约定是指参数传达时的顺序(从左到右或从右到左)和由谁恢复堆栈指针(调用者或被调用者)。 共由3种约定:C约定、和 PASCAL约定和STDCALL约定。STDCALL是结合C约定和PASCAL约定各自优点的一种约定,规定参数的传递是从右到左,即最右边的参数首先入栈,恢复堆栈的工作交由被调用者,即由子程序恢复堆栈指针。 Win32只用STDCALL约定。 8.1 汇编语言Win32程序框架 (3)包含伪指令include 语句 include 语句包含了一些系统的定义和API函数说明,其中所有的Windows 数据结构定义和常量定义包含在windows.inc中。而Windows API含数据在kernel32.inc,user32.inc,gdi32.inc等文件中进行声明。 大多数常用API函数都存在于kernel32.dll、user32.dll和gdi32.dll三个大的系统动态链节库DLL文件中,kernel32.dll中的函数主要处理内存管理和进度调度,user32.dll中的函数主要控制用户界面,gdi32.dll中的函数则负责图形方面的操作。 8.1 汇编语言Win32程序框架 (4)数据段和代码段定义伪指令 .DATA、.DATA?、.CONST和.CODE四个伪指令是“分段”(SECTION)伪指令。WIN32中

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档