32位汇编语言程序设计(第3版)课件:Windows编程.pptx

32位汇编语言程序设计(第3版)课件:Windows编程.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Windows编程6.1操作系统函数调用6.2控制台应用程序6.3图形窗口应用程序

Windows编程熟悉汇编语言调用API函数的方法掌握控制台输入输出函数熟悉MASM的高级特性理解Windows图形窗口程序的编写

36.1操作系统函数调用操作系统以其提供的系统函数(系统功能Systemfunction)支持程序员进行编程Windows的系统函数(功能)以动态连接库DLL(Dynamic-LinkLibrary)形式提供,利用其应用程序接口API(ApplicationProgramInterface)调用DDL库中的函数API是一些类型、常量和函数的集合,提供了编程中使用库函数的途径Win16:16位Windows的APIWin32:32位Windows的API

46.1.1动态连接库静态连接:连接程序从库文件中抽取需要的子程序插入到最终的可执行代码中动态连接:程序运行时才将代码加载到主存动态连接库:保存程序运行时需要重复使用的代码的文件3个最重要的Windows动态连接库KERNEL32.DLL:主要处理内存管理和进程调度USER32.DLL:主要控制用户界面GDI32.DLL:负责图形方面的操作导入库(ImportLibrary):程序开发的连接阶段使用,与一个动态连接库DLL对应

56.1.2MASM的过程声明和调用过程声明伪指令PROTO: 事先声明过程的结构 (包括操作系统API函数、高级语言的函数) 过程名 PROTO [调用距离][语言类型] [,[参数]∶类型]...过程调用伪指令INVOKE 实现过程调用 INVOKE 过程名[,参数,...]

66.1.3程序退出函数Win32程序员参考手册VOIDExitProcess(UINTuExitCode //exitcodeforallthreads);汇编语言声明ExitProcessPROTO,:DWORD汇编语言调用invokeExitProcess,0将函数调用定义成宏exit MACROdwexitcode invokeExitProcess,dwexitcode ENDM宏调用exit 0

76.2控制台应用程序Windows应用程序开始运行创建控制台(Console)窗口或创建图形界面窗口32位Windows控制台程序像增强版的MS-DOS程序使用标准控制台 标准输入设备(键盘) 标准输出设备(显示器)32位控制台程序运行在保护方式通过API使用Windows的动态链接库函数

86.2.1控制台输出编写控制台程序需要调用控制台函数,实现控制台(显示器)输出控制台(键盘)输入几乎所有的控制台函数都要求将控制台句柄作为第一个参数传递给它们本节介绍的控制台函数存在于KERNEL32.DLL动态库中程序开发需要使用KERNEL32.LIB导入库文件

91.控制台句柄句柄(Handle)是一个32位无符号整数用来唯一确定一个对象例如某个输入设备、输出设备或者一个图形标准输入句柄 STD_INPUT_HANDLEequ-10标准输出句柄 STD_OUTPUT_HANDLEequ-11标准错误句柄 STD_ERROR_HANDLEequ-12GetStdHandle函数获取控制台输入或输出的句柄实例用于控制台程序的输入输出操作

102.控制台输出函数显示器输出API函数WriteConsole将一个字符串输出到屏幕上支持标准的ASCII控制字符,例如回车、换行等Win32API中可以使用两种字符集8位ASCII字符集,函数名以字母A结尾16位Unicode字符集,函数名以字母W结尾WriteConsole参数第一个:控制台输出句柄实例第二个:指向字符串的指针、即缓冲区地址第三个:指明字符串长度,是一个32位整数第四个:指向一个整数变量,返回实际输出的字符数第五个:保留,设置为0

11〔例6-1〕控制台输出程序-1 .686 .modelflat,stdcall optioncasemap:none includelibbin\kernel32.libExitProcess proto,:dwordGetStdHandle proto,:dwordWriteConsoleA proto,:dword,:dword,:dword,:dword,:dwordWriteConsole equWriteConsoleASTD_OUTPUT_HANDLEequ-11 .datamsg dbHello,Assembly!,13,10count equ$-msgoutsize dd0

12〔例6-1〕控制台输出程序-2 .codestart: ;获

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档