汇编语言第六章.ppt

上传人:牧羊曲112 文档编号:6586433 上传时间:2023-11-15 格式:PPT 页数:15 大小:204KB
返回 下载 相关 举报
汇编语言第六章.ppt_第1页
第1页 / 共15页
汇编语言第六章.ppt_第2页
第2页 / 共15页
汇编语言第六章.ppt_第3页
第3页 / 共15页
汇编语言第六章.ppt_第4页
第4页 / 共15页
汇编语言第六章.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《汇编语言第六章.ppt》由会员分享,可在线阅读,更多相关《汇编语言第六章.ppt(15页珍藏版)》请在三一办公上搜索。

1、Just a Little,用汇编语言编写32位Windows应用程序,16位DOS与32位Windows1,16位DOS操作系统工作于实地址方式DOS是单任务操作系统,一个正在运行的程序独占了所有系统资源DOS系统只有一个特权级别,任何程序和操作系统都是同级的,32位Windows操作系统运行于保护工作方式Windows是多任务操作系统,系统资源由多个程序共享Windows系统存在两个特权级别,操作系统运行在最高级别0级,应用程序都运行于最低级别3级,16位DOS与32位Windows2,DOS平台下只有1MB物理存储空间必须分成不大于64KB的逻辑段,Windows平台下直接使用32位地址

2、寻址一个不分段的、达4GB的主存空间Windows应用程序只有代码段和数据段无须和段寄存器打交道,16位DOS与32位Windows3,对程序员来说,操作系统由其提供的系统功能调用定义,DOS操作系统为程序员提供中断服务程序以中断调用的方法进行系统功能调用DOS中断调用采用寄存器传递参数,Windows操作系统提供了动态链接库DDL利用应用程序接口API调用动态链接库中的函数Windows的API也曾被称为软件开发包SDK,16位和32位Windows的API分别被称为Win16和Win32Windows应用程序利用堆栈传递参数,16位DOS与32位Windows4,DOS下的程序以字符方式显

3、示给用户程序需要用户输入时,就停下来;用户不输入就不再执行;而且,需要输入一个数据,用户不能输入另一个数据。,Windows程序采用图形用户界面它时刻等待用户的操作。用户的每个操作都会形成消息(Message)传递给程序,程序则给予响应,一个最简单的Win32汇编语言程序显示标准Windows消息窗口的程序消息框显示:欢迎进入32位Windows世界!标题:Win32示例,Win32ASM程序结构,.386.model flat,stdcalloption casemap:noneinclude masm32includewindows.incinclude masm32includekern

4、el32.incinclude masm32includeuser32.incincludelib masm32libkernel32.libincludelib masm32libuser32.lib,ltwin011/2,.dataszCaptiondb Win32示例,0szText db 欢迎进入32位Windows世界!,0.codestart:invoke MessageBox,NULL,addr szText,addr szCaption,MB_OKinvoke ExitProcess,NULLend start,ltwin012/2,对比C+程序,#include int WI

5、NAPI WinMain(HINSTACE hInstance,HINSTACE hPrevInstance,PSTR szCmdLine,int iCmdshow)MessageBox(NULL,TEXT(“欢迎进入32位Windows世界!”),TEXT(“Win32示例”),0);return 0;,C+调用API,MessageBox,在Win32程序员参考手册中的定义:int MessageBox(HWND hWnd,/handle of owner window LPCTSTR lpText,/address of text in message box LPCTSTR lpCap

6、tion,/address of title of message box UINT uType/style of message box);在user32.inc的声明:MessageBoxA PROTO:DWORD,:DWORD,:DWORD,:DWORDMessageBox equ,ExitProcess,在Win32程序员参考手册中的定义:VOID ExitProcess(UINT uExitCode/exit code for all threads);在user32.inc的声明:ExitProcess PROTO:DWORD在windows.inc 的定义:NULLequ 0MB

7、_OKequ 0,MASM32开发环境,Steve Hutchesson的免费软件包编辑器geditor.exeMASM 6.14汇编程序和链接程序相当完整的Win32的包含文件、库文件以及教程和示例等,MASM32的网络资源,Hutch的32位MASM第7版(masm32v7.zip)Iczelion的Win32教程http:/spiff.tripnet.se/iczelionAPI文档,创建一个窗口的过程,1.取得程序的实例句柄(hInstance)2.注册窗口类,即为你的窗口指定处理消息的过程,定义光标,窗口风格,颜色等参数3.创建窗口4.显示窗口5.然后进入消息循环,也就是不停地检测有无消息,并把它发送给窗口进程去处理,ltwin02.asm,ltwin02.exe,窗口处理的过程,1.从Windows传给窗口过程的参数uMsg 得到消息类型,并转到不同的分支去处理2.对已经处理的消息,返回 Windows 时必须在eax 中返回03.不处理的消息,调用DefWindowProc 处理,并把返回值传回Windows;否则,Windows会无法显示,ltwin03.asm,ltwin03.exe,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号