网站大量收购独家精品文档,联系QQ:2885784924

汇编程序 读入一个文本文件并以DEBUG中的D命令格式显示.doc

汇编程序 读入一个文本文件并以DEBUG中的D命令格式显示.doc

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

PAGE  目 录  TOC \o 1-2 \h \z \u  HYPERLINK \l _Toc32046 1. 题目  PAGEREF _Toc32046 1  HYPERLINK \l _Toc26277 2. 程序总体设计方案、思路  PAGEREF _Toc26277 1  HYPERLINK \l _Toc3452 3. 程序设计框图  PAGEREF _Toc3452 3  HYPERLINK \l _Toc9653 4. 源程序清单  PAGEREF _Toc9653 11  HYPERLINK \l _Toc21372 5. 程序调试结果及分析  PAGEREF _Toc21372 18  HYPERLINK \l _Toc20675 6. 设计总结  PAGEREF _Toc20675 21  HYPERLINK \l _Toc18252 6.1问题  PAGEREF _Toc18252 21  HYPERLINK \l _Toc20994 6.2心得  PAGEREF _Toc20994 21  湖南工程学院课程设计报告 PAGE 19 题目 读入一个文本文件并以DEBUG中的D命令格式显示 程序总体设计方案、思路 本程序是读入一个文本文件并以DEBUG中的D命令格式显示。 操作环境是32位的windows XP系统,使用CmasmW软件(本人使用Masm软件,操作环境是64位WINDOWS 7)进行汇编。本程序要求以DEBUG中的D命令格式显示一个文本文件,文件名从键盘键入,大体思路为打开相应文件,读文件至程序缓冲区,并按照要求显示,以下是我本次课程设计的详细方案、思路: 本程序要求用D命令格式显示内容,使用DEBUG中的D命令格式显示一个文本文件时,显示寄存器中的内容大致为:段地址、偏移地址、ASCII码部分(每个字节的值都用ASCII码表示)和字符显示部分(将ASCII码转化为字符显示),每个非打印字符(无效的字符)在显示时用“.”表示,每行显示16个字节的内容,第8个字节和第9个字节之间有一个连接字符“-”。每个显示行从16字节的边界上开始。 程序主要由两大块组成,第一块是文件的获取,包括键入、打开、读取和关闭,其中主要涉及基本DOS系统功能调用指令的使用。第二块是文件的显示,包括段地址、偏移地址、以及读取的文件内容(ASCII码及对应的符号),其中就涉及到多次转移和循环,需要多个子程序的支持才能实现(注意子程序要进行存储保护和恢复)。 程序开始之???,首先在DATA SEGMENT数据段中定义BUF1用来存储读取的文件,用BUF来存储文件名的最大字符缓冲以及实际输入的字符个数,通过相连的FILE来保存实际输入的文件名,HANDLE的作用是在成功打开文件后保存文件代号,ERROR_MESSAGE和MESSAGE分别是提示语句,用来提示错误和键入值。 第一大块(文件的获取)的内容主要依靠基本的键盘键入以及文件存储实现: 首先要键盘输入需要显示内容的文件名,通过0A号功能键入一个文件名到缓冲区,用BUF来存放缓冲区最大字符数和实际输入的文件名的长度,其中并不存放文件名,真正的文件名用FILE来存放,输入完以后在FILE末给“0”(MOV指令)以结束并确认输入,文件名键入完成; 键入完成后,打开文件,通过3D号功能打开文件,需要先将AL置0以选择读功能(AL=1为写,2为读/写),将FILE文件名首地址给DX以读取文件名,如果打开失败则显示错误,AX=错误码,如果成功则AX=文件代号,文件代号需要通过第三方保存,因为在后续操作需要使用,进入下一步; 通过3F号功能读取文件,调用参数BX=文件代号,CX=读取字节数,用BUF1读取文件的内容,如果读取文件失败,则显示错误,AX=错误码,如果成功读取文件,则文件保存在BUF1中,AX=实际读入的字节数; 将HANDLE中所存的文件代号给BX,通过3E号功能完成文件关闭功能,如果程序到此都没有发生错误,则运行成功,进入下一个阶段,如失败,则提示错误,AX=错误码。 第二大块功能主要是通过循环、转移、比较等来实现最终显示: 由于D命令格式显示有其特殊的要求(上文已经提及),所以在设计时也应该考虑在内,本程序设置256个字符,每行显示16个字节,共16行,这里可以用到loop循环16次,每一次显示一行内容; 显示段地址,调用子程序显示段地址,将DATA段的地址给BX,通过4次循环(一次左移4位)依次读出4个4位二进制数,用4位16进制表示,具体规则是,将每次循环到低位的数和0FH相与,只留下最低4位,让其与30H相加,如果小于3AH,说明

文档评论(0)

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

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

1亿VIP精品文档

相关文档