附录C汇编语言课程设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
附录C 汇编语言课程设计《文本阅读器》 C.1 课程设计的目的 本课程设计是《80X86汇编语言程序设计》课程的后继教学环节,其宗旨是使学生通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作,对汇编语言程序设计有更进一步的认识,提高编程技巧和阅读理解复杂程序的能力。 C.2 课程设计的任务 根据所给的“Reader.asm”应用程序框架,在此基础上修改和添加功能。 基本任务: 认真阅读“Reader.asm”源程序,理解程序每一条指令在程序中的作用(回答质疑); 用→、←键在窗口内左右移动文本; 用PgDn,PgUp键上下快速移动文本(每次移半帧); 设计专用键放大、缩小窗口,改变窗口位置。 扩展任务: 对文本内的Tab字符(ASCII码09H)进行处理:遇到Tab键,下一个字符显示在下一个表站开始处(每个6个字符一个表站); 设置状态行,显示当前文件名、文本位置(仿垂直滚动条)。 其他任务: 使用鼠标对窗口位置进行拖动; 自行设计。 C.3 课程设计报告要求与内容 分析原“Reader.asm”程序结构:每个模块说明,较大模块程序流程图; 对你已经实现的功能做详细的说明,并附上流程图及程序清单; 自己对该“文件阅读器”的进一步设想; 对于有设想但最终未实现的功能的大致编程思路的阐述; 论述在设计过程中遇到的并且对你具有启发性的问题。 C.4 《文本阅读器》汇编语言源程序清单 ; Title: Assemble Program “Reader.asm” ; Read a file from disk, display it’s contents on screen ; Move the content on screen by up/down arrow keys ; ======================================================================== MYDAT SEGMENT MAXLEN DW 1000 ; 最大行数 INDEX DW 1000 DUP(?) ; 行索引 LENCT DW 0 ; 实际行数 CURLINE DW 0 ; 当前页第一行行数 CCOUNT DW ? ; 文件总字符数 TOP DB 5 ; 窗口左上角行数 LEFT DB 5 ; 窗口左上角列数 WS DW 60 ; 窗口宽度 HS DW 15 ; 窗口高度 FG DB 17H ; 文字属性 FGB DB 1FH ; 窗口边框属性 MSG1 DB 'File:$' ; 输入文件名提示 MSG2 DB 'File open error!$' ; 打开文件出错时提示 MSG3 DB 'File read error!$' ; 读文件出错时提示 FILENA DB 80,?,80 DUP(?) ; 输入文件名缓冲区 ; 定义功能键和相应的处理程序 ; 每个功能定义两个数据:扫描码,处理程序入口地址 ; 该数据由DOSUB子程序使用 KEYSUB DW 48H, SUB1 , 50H, SUB2, 0 MYDAT ENDS ; ======================================================================== BUFFER SEGMENT PARA DB 65535 DUP(?) ; 文件缓冲区,文件最大为64K BUFFER ENDS ; ======================================================================== SSEG SEGMENT STACK ‘STACK’ ; 堆栈段 DW 100 DUP(?) SSEG ENDS ; ======================================================================== ; 宏定义 DISPINIT: 设置显示器显示方式 DISPINIT MACRO MOV AX,0003H ; 文本方式 25x80 INT 10H ENDM ; ------------------------------------------------------------------------ ; 宏定义 PROMPT: 显示字符串 PROMPT MACRO OUTMSG LEA DX, OUTMSG MOV AH, 09H ; INT 21H ; ENDM ; ---------------------------------------------------------------

文档评论(0)

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

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

1亿VIP精品文档

相关文档