1、 汇编语言程序设计汇编语言程序设计课程课程设计设计 题目:字符串查找与替换 专业:计算机科学与技术 学号:2010810071 姓名: 2011-2012 学年第一学期 一设计目的一设计目的 汇编语言课程设计是对所学课程内容全面、系统的总结、巩固和提高的一项 课程实践活动。根据汇编语言的特点,选择相应的题目,在老师的指导下,由学 生独立完成。课程设计要求同学们熟悉汇编语言的编程,BIOS 中断调用、系统 功能调用、磁盘数据的查询、存取等相关知识。通过课程设计,一方面提高运用 汇编语言编程解决实际问题的能力, 另一方面使同学们更深入的了解计算机系统 内部的有关知识,为以后的学习和系统开发奠定良好
2、的基础。 二二设计设计内容内容 3. 功能描述: 1 对已有的文件(预先建立)内容进行扫描统计。 (字符数,行数) 2 字符串查找操作 3 字符串替换操作,替换后的文件内容另存入一结果文件,原文件内容不变 4 显示结果文件内容 编程要点: 1 目标文件及结果文件必须和程序文件在同一目录下(当前目录) 2 原文件内容必须 50 行以上 3 字符串查找、替换过程要显示当前行及前几行、后几行的内容,以便按键选 择继续查找或是否替换代码 4 字符串查找或者替换操作结束后,要显示查找到的字符串个数、已经替换的 字符串个数。 三程序设计原理三程序设计原理 1.主程序主程序 程序开始打开原文件,将文件内容读
3、到内存缓冲区 TEXT 后,关闭原文件。接着显示 主菜单,接收用户输入一个字符,实现不同的功能: a.输入1,则调用子程序子程序 STATISTICS,对 TEXT 中的文件内容进行扫面统计(字符 数、行数); b.输入2,则调用子程序子程序 SEARCH,进行字符串的查找操作; c.输入3,则调用子程序子程序 REPLACE,进行字符串的替换操作; d.输入4,则调用子程序子程序 DISPLAY,将 TEXT 的内容显示出来; e.输入5,则退出程序; f.输入其他字符,则显示提示信息,重新输入。 2.子程序子程序 STATISTICS 由于显示屏为 25*80,每行至多显示 80 个字符,
4、所以要依次对 TEXT 中的每个字节进 行扫描,使用 CMP 指令判断该字节是否为空格符、回车符、换行符: a.若为空格符则 BX 加 1,再比较 BX 是否小于 80,小于则继续判断下一个字节,等于 则将 BX 清零,统计的行数 LINE_COUNT加 1,再继续判断下一个字节; b.若为回车符则直接判断下一个字节; c.若为换行符则将 BX 清零,统计的行数 LINE_COUNT 加 1,再继续判断下一个字节; d.若为字符, 则统计的字符数 CHAR_COUNT 加 1,BX 加 1, 再比较 BX 是否小于 80, 小于则继续判断下一个字节,等于则将 BX 清零,统计的行数 LINE_COUNT 加 1,再继续 判断下一个字节; 统计完成后调用子程序子程序 BINIDEC 用十进制显示统计结果。 3.子程序子程序 SEARCH 首先接收用户要查找的字符串, 然后通过循环控制程序, 对 TEXT 进行查找。 用 CMPSB 指令进行字符串比较,若匹配的话调用子子程序程序 SHO