资源描述:
《Win32汇编语言程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WINDOWS环境下32位汇编语言程序设计1编程环境编辑工具:记事本、UltraEdit32、EditPlus等汇编程序:ML.EXE(MasmandLink)6.11版本及以上连接程序:Link.EXE调试工具:TD32.exe资源编译器:RC.EXE,CVTRES.EXE常用的API函数申明及引入库从汇编网站上下载:WIN32编程环境(不需安装)使用“80X86汇编语言程序设计”作为教材的学生,在编写WIN32程序时建议下载此版本的开发环境。它是MASM6.14(MASM32v5)。2几个简单的例子.386.mod
2、elflat,stdcalloptioncasemap:noneincludemasm32v5includewindows.incIncludemasm32v5includekernel32.incincludemasm32v5includeuser32.incincludelibmasm32v5libkernel32.libincludelibmasm32v5libuser32.lib.dataMsgBoxCaptiondb“win32example",0MsgBoxTextdb“Win
3、32AssemblyisGreat!",0.codestart:invokeMessageBox,NULL,addrMsgBoxText,addrMsgBoxCaption,MB_OKinvokeExitProcess,NULLendstart显示一个对话框DEMO32.asm编译:e:masm32v5bin>ml/c/coffdemo32.asm注意:直接运行ml,会给出提示,包括其版本和得到帮助的方法。e:masm32v5bin>ml/help可以显示所有的编译参数。连接:e:masm32v5bin>l
4、ink/subsystem:windowsdemo32.obj注意:直接运行link,会给出连接参数提示。/c:只编译,不连接;/coff产生COFF格式的文件/subsystem:windows产生windows下的程序对demo32.asm的改进现存问题分析:(1)源文件中包含的头文件和引入库都带有路径路径发生变化,怎么办?(2)编译、连接时都要输入长串,使用不方便(3)原文件及其生成文件与bin目录放在一起,管理不方便改进:(1)删除源文件中的相关路径,见demo32g.asm(2)建立新目录xu(3)建立批处理
5、文件参见xu_assmbl.batxu_ml.bat编译、连接的方法之三使用QEDITOR.EXEQEDITOR将编辑、汇编、连接等组装在一起。其组装方法是通过一个文本文件来说明其菜单项及调用的程序。参见:QEDITOR.INIMENUS.INI编译、连接的方法之四写一个工程文件,说明需要汇编、连接的程序,以及相关的编译参数。参见:demo32g.prj运行nmake–fdemo32g.prj例2:显示一个菜单,选择不同的菜单项,执行不同的功能。demo32_menu.asmdemo32_menu_rc.rc参见书P2
6、92的编译连接方法。也可以使用工程:先编译资源demo32_menu_rc.rc->….resdemo32_menu.prj①存储模型说明伪指令MODEL格式:.MODEL存储模型[,语言类型][,系统类型][,堆栈选项]功能:用于指定程序中各个段的属性、程序的运行环境,调用规则。段的简化定义用简单的方式定义代码段、数据段、堆栈段等。3宏汇编语言对WIN32编程的支持存储模型段的大小代码访问范围数据访问范围备注TINY16位NEARNEAR代码和数据全部放在同一个64K段内,常用于生成.COM程序SMALL16位NEA
7、RNEAR代码和数据在各自的64K段内,代码总量和数据总量均不超过64KCOMPACT16位NEARFAR代码总量不超过64K,数据总量可以超过64KMEDIUM16位FARNEAR代码总量可超过64K,数据总量不超过64KLARGE16位FARFAR代码和数据总量均可超过64K,但单个数组不超过64KHUGE16位FARFAR代码和数据总量均可超过64K,单个数组可超过64KFLAT32位NEARNEAR代码和数据全部放在同一个4G空间内格式:.MODEL存储模型[,语言类型][,系统类型][,堆栈选项]语言类型:指
8、定了函数命名、调用和返回的方法。语言类型取值:C、PASCAL或STDCALL等。根据WIN32中API的要求,应选择STDCALL。采用堆栈法传递参数,参数进栈次序为:函数原型描述的参数中最右边的参数最先入栈、最左边的最后入栈;由被调用者在返回时清除参数占用的堆栈空间。注意:省略语言类型时则应在函数说明/定义语句PROTO、PR