win32汇编语言教程

win32汇编语言教程

ID:14330257

大小:80.00 KB

页数:41页

时间:2018-07-28

win32汇编语言教程_第1页
win32汇编语言教程_第2页
win32汇编语言教程_第3页
win32汇编语言教程_第4页
win32汇编语言教程_第5页
资源描述:

《win32汇编语言教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Win32汇编语言教程Win32汇编语言教程VCKBASEOnlineHelpJournalNo.10Win32汇编语言教程作者:TBsoft一、引言Win32应用程序一般使用C语言编程,但是在某些需要进行深层编程的情况下,例如Win32应用程序执行机制分析、病毒清除、加密解密等深层编程,或者对于某些速度要求较高的程序,需要使用汇编语言(甚至机器语言)直接编写Win32应用程序。Win32应用程序虽然和其他32位应用程序(例如32位保护模式DOS程序)一样可以使用386汇编语言和保护模式编程,但是Win32应用程序的执行机制与其他

2、32位应用程序有一定的差别,例如消息循环、动态链接等,Win32汇编语言也有其特殊的编程方式。目前国内极少看到有关Win32汇编语言的资料,市面上的汇编语言书籍一般只介绍DOS实模式汇编语言和386保护模式汇编语言,金山公司的《深入Windows编程》一书虽然介绍了使用汇编语言写Windows应用程序的方法,可惜该书只介绍了Win16汇编语言。为了使大家能对Win32汇编语言的基本编程方法有一定的了解,近日得闲,笔者编写了本教程,旨在抛砖引玉,如果本教程能够带领你走进神秘的Win32汇编语言世界,笔者心愿足矣。使用本教程,要求读者

3、具有C语言编写Win32应用程序(Win32SDK编程)的基础。二、进行Win32汇编语言编程的基本软件进行Win32汇编语言编程,应该准备下列基本软件:1、MASM6.11以上版本的汇编器MASM是Microsoft公司的汇编器,这是最基本的软件,必需MASM6.11以上版本才能够汇编Win32汇编语言源程序。不过进行Win32汇编语言编程不必要全套的MASM6.11,只要一个ML.EXE文件就可以了,Windows95DDK中带有MASM6.11c的ML.EXE文件,Windows98DDK中带有MASM6.11d的ML.EX

4、E文件,都可以使用。TurboMASM5.0(TASM)是Borland公司的汇编器,也可以用来汇编Win32汇编语言源程序,但是TASM的部分语法与MASM不同,用于MASM的Win32汇编语言源程序可能需要修改后才能用TASM汇编。本教程中的所有Win32汇编语言源程序都基于MASM。2、Win32SDK进行Win32汇编语言编程需要用到Win32SDK中的资源编译器(RC.EXE)和连接器(LINK.EXE),还需要用到Win32SDK中的引入库文件(KERNEL32.LIB、USER32.LIB、GDI32.LIB等)。如

5、果没有Win32SDK,PlatformSDK也可以,还可以安装VisualC++2.0以上版本的VisualC++,笔者使用的是VisualC++6.0。BorlandC++4.0以上版本的BorlandC++也可以使用,只是资源编译器和连接器的文件名不同,分别是BRC.EXE(BRC32.EXE)和TLINK.EXE(TLINK32.EXE),选项也不尽相同,另外BorlandC++不支持COFF格式的OBJ文件,汇编时不能使用/coff选项。3、汇编语言编辑器一个普通的文本编辑器,用于编辑Win32汇编语言源程序。EDIT、

6、PWB等都可以,VisualC++等编程语言中的编辑器也可以,甚至WORD、WPS97等可以编辑文本文件的字处理软件都可以,不过笔者推荐使用ASMEDIT,这是一个专用的汇编语言编辑器,效果非常好。Win32汇编语言一般使用命令行方式汇编连接,经过一定的设置也可以在某些集成环境(PWB、VisualC++、ASMEDIT等)下汇编连接,还可以使用NMAKE工具,不过本教程中只使用命令行方式汇编连接,也不使用NMAKE工具。三、ANSI字符集API与UNICODE字符集APIWin32API中凡是与字符有关的API都有两种不同的类型

7、:ANSI字符集API和UNICODE字符集API,分别对应ANSI字符和UNICODE字符,WindowsNT支持两种类型的API,Windows95/98只支持ANSI字符集API。在WINDOWS.H头文件和其他Win32API定义头文件中,凡是与字符有关的API都有两种不同的定义,ANSI字符集API以API名称加字符“A”表示,UNICODE字符集API以API名称加字符“W”表示,并使用条件编译和宏定义实现自动根据当前字符集使用对应的API定义,例如GetModuleHandle函数的定义(包括在WINBASE.H头文

8、件中):WINBASEAPIHMODULEWINAPIGetModuleHandleA(LPCSTRlpModuleName);WINBASEAPIHMODULEWINAPIGetModuleHandleW(LPCWSTRlpModuleName)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。