汇编教程06课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言教程 第6章 Windows编程 第6章 Windows编程 6.1 操作系统函数调用 6.2 控制台应用程序 6.3 图形窗口应用程序 第6章 Windows编程 熟悉汇编语言调用API函数的方法 掌握控制台输入输出函数 熟悉MASM的高级特性 理解Windows图形窗口程序的编写 6.1 操作系统函数调用 操作系统以其提供的系统函数(系统功能System function)支持程序员进行编程 Windows的系统函数(功能)以动态连接库DLL(Dynamic-Link Library)形式提供,利用其应用程序接口API(Application Program Interface)调用DDL库中的函数 API是一些类型、常量和函数的集合,提供了编程中使用库函数的途径 Win16:16位Windows的API Win32:32位Windows的API 6.1.1 动态连接库 静态连接:连接程序从库文件中抽取需要的子程序插入到最终的可执行代码中 动态连接:程序运行时才将代码加载到主存 动态连接库:保存程序运行时需要重复使用的代码的文件 3个最重要的Windows动态连接库 KERNEL32.DLL:主要处理内存管理和进程调度 USER32.DLL:主要控制用户界面 GDI32.DLL:负责图形方面的操作 导入库(Import Library):程序开发的连接阶段使用,与一个动态连接库DLL对应 6.1.2 MASM的过程声明和调用 过程声明伪指令PROTO: 事先声明过程的结构 (包括操作系统API函数、高级语言的函数) 过程名 PROTO [调用距离] [语言类型] [,[参数]∶类型]... 过程调用伪指令INVOKE 实现过程调用 INVOKE 过程名[,参数,...] 6.1.3 程序退出函数 Win32程序员参考手册 VOID ExitProcess( UINT uExitCode // exit code for all threads ); 6.1.4 Windows程序格式 .686 .model flat,stdcall option casemap:none includelib bin32\kernel32.lib ExitProcess proto,:dword .data ;定义数据段 …… ;数据定义(数据待填) .code ;定义代码段 start: ;程序执行起始位置 …… ;主程序(指令待填) invoke ExitProcess,0 ;程序正常执行终止 …… ;子程序(指令待填) end start ;汇编结束 6.2 控制台应用程序 Windows应用程序开始运行 创建控制台(Console)窗口 或创建图形界面窗口 32位Windows控制台程序 像增强版的MS-DOS程序 使用标准控制台 标准输入设备(键盘) 标准输出设备(显示器) 32位控制台程序运行在保护方式 通过API使用Windows的动态链接库函数 6.2.1 控制台输出 编写控制台程序需要调用控制台函数,实现 控制台(显示器)输出 控制台(键盘)输入 几乎所有的控制台函数都要求将控制台句柄作为第一个参数传递给它们 本节介绍的控制台函数 存在于KERNEL32.DLL动态库中 程序开发需要使用KERNEL32.LIB导入库文件 1. 控制台句柄 句柄(Handle)是一个32位无符号整数 用来唯一确定一个对象 例如某个输入设备、输出设备或者一个图形 标准输入句柄 STD_INPUT_HANDLE = -10 标准输出句柄 STD_OUTPUT_HANDLE = -11 标准错误句柄 STD_ERROR_HANDLE = -12 GetStdHandle函数 获取控制台输入或输出的句柄实例 用于控制台程序的输入输出操作 2. 控制台输出函数 显示器输出API函数WriteConsole 将一个字符串输出到屏幕上 支持标准的ASCII控制字符,例如回车、换行等 Win32 API中可以使用两种字符集 8位ASCII字符集,函数名以字母A结尾 16位Unicode字符集,函数名以字母W结尾 WriteConsole参数 第一个:控制台输出句柄实例 第二个:指向字符串的指针、即缓冲区地址 第三个:指明字符串长度,是一个32位整数 第四个:指向一个整数变量,返回实际输出的字符数 第五个:保留,设置为0 〔例6-1〕控制台输出程序-1 .686 .model flat,stdcall option casemap:none includelib bin32\kernel32.lib ExitProcess proto,:dword GetStdHand

文档评论(0)

0520 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档