您好,欢迎访问三七文档
科技学院综合实验报告(2014--2015年度第一学期)名称:《汇编语言程序设计》综合实验题目:汇编综合实验院系:班级:学号:学生姓名:指导教师:设计周数:成绩:日期:2015年1月4日《汇编语言程序设计》综合实验任务书一、目的与要求通过本门课程的学习与实践,学生可以加深对汇编语言程序设计课程的理解与掌握,有助于提高学生的汇编语言程序设计能力,同时可以加深对计算机工作原理的理解,有助于促进后续课程的学习。本课程要求学生针对课本所学知识从调试程序、循环程序设计、分支程序设计、子程序设计、显示器IO程序设计、键盘输入程序设计和中断练习程序等七个实验进行学习和实践,使学生对汇编语言有更深入、细致和全面的了解,并能用所学知识解决实际问题。要求有设计说明,画出程序流程图,然后根据流程图编写程序,并上机调试写出运行结果。二、主要内容1.比较字符串sample(学习)、用表格形式显示字符比较字符串sample:比较两个字符串string1和string2所含的字符数是否相同。若相同则显示‘match’,否则显示‘nomatch’;要求编写程序,并汇编,连接,运行,然后使用Debug调试该程序。用表格形式显示字符:按15行*16列的表格形式显示ASCII码为10H-100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。2.查找匹配字符串程序接受用户键入的一个关键字以及一个句子。如果句子中不含关键字则显示‘nomatch’;如果句子中包含关键字则显示‘match’,且把该字在句子中的位置用十六进制数显示出来。3.分类统计字符的个数程序接收用户键入的一行字符(用回车符结束),并按字母,数字及其他字符分类计数,然后将结果存入以letter,digit和other为名的存储单元中。4.查找电话号码要求程序建立一个可存50项的电话号码表,每项包括人名及电话号码两部分;程序可接受输入人名及相应的电话号码,并将其保存至电话号码表中;当有新的输入后,程序应按人名对电话号码表重新排序;程序可接受键盘输入人名并查找电话号码,再在屏幕上显示出来。5.屏幕窗口程序在屏幕上开出三个窗口,它们的行列坐标如下图所示。光光标首先定位在右窗口最下面一行的行首(15,50),如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下左键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。6.扩充键盘处理功能(选做)在完成键盘处理基本功能的基础上,增加left_shift和right_shift键的功能。要求实现左右SHIFT任何一个键处于按下状态时输入字符为键盘的上档字符或大写字母,否则输出数字或小写字母。三、进度计划序号设计内容完成时间备注1比较字符串sample(学习)用表格形式显示字符周一2查找匹配字符串周二3分类统计字符的个数周三4查找电话号码周四5屏幕窗口程序(选做)6扩充键盘处理功能(选做)注:其中第1-4个实验根据进度在1月4日之前验收即可;学有余力的同学可选做第5、6题。四、设计成果要求(5,10)(15,30)(5,50)(15,70)(18,15)(22,65)1.以上实验要求首先画出程序流程图,然后根据流程图编写程序并上机调试,教师将验收实验结果。2.课程设计报告:完成上机题目后,应认真撰写上机综合实验报告,报告内容包括:•上机题目及要求;•设计说明:完成的功能、整体设计思想及使用的算法;•设计的程序流程框图和主要数据结构;•上机题目完成的情况,输入的典型代码数据和运行结果;•存在的问题及解决方法设想;•上机实验的心得体会。五、考核方式依据进度计划,完成综合实验内容,并向老师讲解所完成任务的功能、思想、使用算法及主要程序流程,老师提出问题,提交综合实验报告。成绩评定方法:现场考查+验收+综合实验报告学生姓名:指导教师:2014年12月23日实验一:用表格形式显示字符一、综合实验的目的与要求按15*16列的表格形式显示ASCⅡ码为10H—100H的所有字符,即以行为主的顺序及ASCⅡ码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符隔开。二、实验正文CODESSEGMENT;**********************************************mainprocfarASSUMECS:CODESSTART:pushdssubax,axpushaxmovdi,15movdl,10hloo:movcx,16next:movah,02hint21hincdlpushdxmovdl,0movah,02hint21hpopdxloopnextpushdxmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02hint21hpopdxdecdijneloojeexitexit:retmainendpCODESENDSENDSTART三、综合实验总结或结论四、参考文献1,作者:沈美明温东婵2书名:《IBM-PC汇编语言程序设计》3出版单位:清华大学出版社4版本:第二版5出版日期:2001年附录(设计流程图、程序、表格、数据等)(1)显示每个字符可使用功能号为02的显示输出功能调用:Movah,02hMovdl,输出字符的ASCⅡ码Int21h将dl初始化为10H,然后使用其加1以取得下一个字符的ASCⅡ码。(2)显示空白符是,用其ASCⅡ码置0入dl寄存器。每行结束时,用回车和换行来结束本行并开始下一行。(3)由于逐个显示相继的ASCⅡ码字符是,需要不断修改dl寄存器的内容,而显示空白、回车、换行也需要使用dl寄存器,为此可使用堆栈保存dx。实验二:查找匹配字符串一、综合实验的目的与要求程序接受用户键入的一个关键字以及一个句子,如果句子中不包含关键字则显示“Nomatch!”;如果句子中包含关键字则显示“match!”,且把该字在句子中的位置用十六进制数显示出来。要求程序的执行过程如下:Enterkeyword:abcEntersentence:wearestudyingabcMatchatlocation:11HofthesentenceEntersentence:xyzNomatch!Entersentence:二、实验正文DATASSEGMENTpara'data'mess1db'match!',13,10,'$'mess2db'nomatch!',13,10,'$'mess3db'enterkeyword:','$'mess4db'entersentence:','$'mess5db'matchatlocation:','$'mess6db'Hofthesentence','$'stoknimlabelbytemaxdb10actdb?stokndb10dup(?)sentencelabelbytemadb100acdb?stodb100dup(?)DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDS;*****************************************CODESSEGMENTpara'code'ASSUMECS:CODES,DS:DATAS,es:datasmainprocfarSTART:pushdssubax,axpushaxMOVAX,DATASMOVDS,AXmoves,ax;*****************输入关键字和一个句子***********k:leadx,mess3movah,09int21h;显示字符串‘enterword’leadx,stoknimmovah,0ahint21h;输入关键字到缓冲区Wordpushdxmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02hint21h;回车换行popdxd:leadx,mess4movah,09int21h;显示字符串‘entersentence’leadx,sentencemovah,0ahint21h;输入句子到缓冲区sentencepushdxmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02hint21h;回车换行popdx;****************比较查找信息********************leasi,stoknim;si指向关键字leadi,sentence;di指向句子movax,0movbl,1;初始化bxmovcl,0;初始化外循环计数单元moval,actmovah,acsubah,aladdah,1movcl,ah;cl中循环次数cmpcl,0jenomatcha:pushcxmovcl,alrepnzcmpsbjzmatchsubdi,1subsi,2addbl,1popcxdecclcmpcl,0jneajenomatch;***************输出信息*************************match:leadx,mess1movah,09hint21h;显示matchpushdxmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02hint21h;回车换行popdxleadx,mess5movah,09hint21h;显示matchatlocationmoval,blandal,0fhaddal,30hcmpal,3ahjlpaddal,7hp:movdl,almovah,02hint21hleadx,mess6movah,09hint21hpushdxmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02hint21h;回车换行popdxjmpwernomatch:leadx,mess2movah,09hint21h;显示nomatchpushdxmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02hint21h;回车换行popdxwer:jmpdmainendpCODESENDSENDSTART三、综合实验总结或结论四、参考文献1,作者:沈美明温东婵2书名:《IBM-PC汇编语言程序设计》3出版单位:清华大学出版社4版本:第二版5出版日期:2001年附录(设计流程图、程序、表格、数据等)程序由三部分组成:(1)输入关键字和一个句子,分别存入相应的缓冲区中。(2)在句子中查找关键字(3)输出信息。用功能调用09h分‘找到’和‘未找到两种情况分别显示不同的信息。在“找到”时,显示关键字在字符串中位置。实验三:分类统计字符个数一、综合实验的目的与要求程序接受用户键入一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母、数字、其它字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中。二、实验正文datareasegmenttoudb'enterword',13,10,'$'letterdb'letter:','$'numberdb'number:','$'otherdb'other:','$'datareaends;***************************************************codessegmentmainprocfarassumecs:codes,ds:datareastart:pushdssubax,axpushaxmovax,datareamovds,axmovbx,0movcx,0movdi,0leadx,toumovah,09hint21hinput:movah,1int21hcmpal,0dhjedispcmpal,30hjaen1o:incdijmpsho
本文标题:汇编实验报告
链接地址:https://www.777doc.com/doc-5660524 .html