- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
win32汇编概述-欢迎来到
Just a Little 16位DOS与32位Windows-1 16位DOS操作系统工作于实地址方式 DOS是单任务操作系统,一个正在运行的程序独占了所有系统资源 DOS系统只有一个特权级别,任何程序和操作系统都是同级的 16位DOS与32位Windows-2 DOS平台下 只有1MB物理存储空间 必须分成不大于64KB的逻辑段 16位DOS与32位Windows-3 DOS操作系统为程序员提供中断服务程序 以中断调用的方法进行系统功能调用 DOS中断调用采用寄存器传递参数 16位DOS与32位Windows-4 DOS下的程序以字符方式显示给用户 程序需要用户输入时,就停下来;用户不输入就不再执行;而且,需要输入一个数据,用户不能输入另一个数据。 ltwin01-1/2 .386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib ltwin01-2/2 .data szCaption db Win32示例,0 szText db 欢迎进入32位Windows世界!,0 .code start: invoke MessageBox,NULL,\ addr szText, addr szCaption,MB_OK invoke ExitProcess,NULL end start C++调用API #include windows.h int WINAPI WinMain(HINSTACE hInstance, HINSTACE hPrevInstance, PSTR szCmdLine,int iCmdshow) { MessageBox(NULL,TEXT(“欢迎进入32位Windows世界!”),TEXT(“Win32示例”),0); return 0; } MessageBox 在Win32程序员参考手册中的定义: int MessageBox( HWND hWnd, // handle of owner window LPCTSTR lpText, // address of text in message box LPCTSTR lpCaption, // address of title of message box UINT uType // style of message box ); 在user32.inc的声明: MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD MessageBox equ MessageBoxA ExitProcess 在Win32程序员参考手册中的定义: VOID ExitProcess( UINT uExitCode // exit code for all threads ); 在user32.inc的声明: ExitProcess PROTO :DWORD 在windows.inc 的定义: NULL equ 0 MB_OK equ 0 MASM32开发环境 Steve Hutchesson的免费软件包 编辑器geditor.exe MASM 6.14汇编程序和链接程序 相当完整的Win32的包含文件、库文件以及教程和示例等 MASM32的网络资源 Hutch的32位MASM第7版(masm32v7.zip) / Iczelion的Win32教程 http://spiff.tripnet.se/~iczelion / API文档 /msdn 创建一个窗口的过程 1.取得程序的实例句柄(hInstance) 2.注册窗口类,即为你的窗口指定处理消息的过程,定义光标,窗口风格,颜色等参数 3.创建窗口 4.显示窗口 5.然后进入消息循环,也就是不停地检测有无消息,并把它发送给窗口进程去处理 窗口处理的过程 1. 从Windows传给窗口过程的参数uMsg 得到消息类型,并转到不同的分支去处理 2. 对已经处理的消息,返回 Windows 时必须在eax 中返回0 3. 不处理的消息,调用DefWindowProc 处理,并把返回值传回Windows;否则,Windows会无法显示 Win32汇编 32位Windows操作系统运行于保护工作方式 Windows是多
文档评论(0)