![课程设计综合实验报告书(科院模版)_第1页](http://file4.renrendoc.com/view/7a01dd0af79eb895f028509b3cfac1d2/7a01dd0af79eb895f028509b3cfac1d21.gif)
![课程设计综合实验报告书(科院模版)_第2页](http://file4.renrendoc.com/view/7a01dd0af79eb895f028509b3cfac1d2/7a01dd0af79eb895f028509b3cfac1d22.gif)
![课程设计综合实验报告书(科院模版)_第3页](http://file4.renrendoc.com/view/7a01dd0af79eb895f028509b3cfac1d2/7a01dd0af79eb895f028509b3cfac1d23.gif)
![课程设计综合实验报告书(科院模版)_第4页](http://file4.renrendoc.com/view/7a01dd0af79eb895f028509b3cfac1d2/7a01dd0af79eb895f028509b3cfac1d24.gif)
![课程设计综合实验报告书(科院模版)_第5页](http://file4.renrendoc.com/view/7a01dd0af79eb895f028509b3cfac1d2/7a01dd0af79eb895f028509b3cfac1d25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
科技学院课程设计(综合实验)报告(2010--2011年度第1学期)名称:汇编语言程序设计课程设计题目:查找匹配字符串院系:信息工程系班级:学号:学生姓名:指导教师:设计周数:一周成绩:日期:2010年12月10日一、课程设计的目的与要求实验一比较字符串sample熟悉DEBUG有关命令的使用方法;利用DEBUG掌握有关指令的功能;利用DEBUG运行简单的程序段。进入和退出DEBUG程序;学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下;利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。编写一个程序:比较两个字符串string1和string2所含的字符数是否相同。若相同则显示‘math’,否则,显示‘nomath’;要求编写程序,并汇编,连接,运行,然后使用Debug调试该程序。实验二查找匹配字符串程序接受用户键入的一个关键字以及一个句子。如果句子中不含关键字则显示‘nomath’;如果句子中包含关键字则显示‘math’,且把该字在句子中的位置用十六进制数显示出来。实验三分类统计字符的个数程序接收用户键入的一行字符(用回车符结束),并按字母,数字及其他字符分类计数,然后将结果存入以letter,digit和other为名的存储单元中。实验四查找电话号码4.1要求程序建立一个可存50项的电话号码表,每项包括人名及电话号码两部分;4.2程序可接受输入人名及相应的电话号码,并把他们加入到电话号码表中;4.3凡有新的输入后,程序应按人名对电话号码表重新排序;4.4程序可接受需要查找电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕上显示出来。 实验五屏幕窗口程序在屏幕上开出三个窗口,它们的行列坐标如下图所示。(5,10)(5,10)(15,30)(5,50)(15,70)(18,15)(22,65)光标首先定位在右窗口最下面一行的行首(15,50),如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下左键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。实验六扩充键盘处理功能在完成键盘处理基本功能的基础上,增加left_shift和right_shift键的功能。要求实现左右SHIFT任何一个键处于按下状态时输入字符为键盘的上档字符或大写字母,否则输出数字或小写字母。二、设计(实验)正文实验一比较字符串sample(1)设计思路 将两个字符串通过lea指令放入si和di中,用指令repz取字符串的首地址开始比较,REPZ表示在CX不为0时,且ZF=1重复执行后面的串处理指令CMPS。如果不同选择NOTMATCH输出,否则输出MATCH。REPZCMPSBJZMATCHJMPNOTMATCH(2)程序框图输入比较字符串输入比较字符串将字符串分别放入si和di比较[si]和[di]内的字符串是否相同将字符串分别放入si和di比较[si]和[di]内的字符串是否相同输出MATCH结束输出NOTMATCH(3)程序实现LEASI,STRING1LEADI,STRING2/*分别放入字符串于SI和DI*/CLD/*规定字符串于SI和DI的比较方向*/MOVCX,25/*设置字符串比较次数*/REPZCMPSB/*循环比较字符串*/JZMATCH/*字符串相同跳转*/LEADX,MESS2JMPSHORTDISP/*字符串不相同无条件跳转*/MATCH:LEADX,MESS1DISP:MOVAH,09/*输出结果*/INT21HMOVAH,4CHINT21H(4)实验结果(实验的运行结果)实验二查找匹配字符串(1)设计思路(包括程序的原理,算法及数据结构等)(2)程序框图(画出程序主要部分流程图)NNYYY输入关键字结束关键字长度=0输入句子句子长度<关键字长度Y保存关键字长度到cx,cx入栈,保存总循环次数(句子长度-关键字长度+1)到al,将句子的首地址放进bx(作为基址寄存器)si=di=0(变址寄存器)开始比较[bx+di]与[si]是否相等si+1,di+1,cx-1(同时指向下一个字符)YNbx+1(句子指向下一个字符)cx出栈,再入栈,si,di清零,al-1cx是否为0N匹配完成,调用子程序输出al是否为0不匹配,输出(3)程序实现leadx,mess1movah,09int21h;输出Enterkeywordleadx,stoknin1movah,0ah;用21号中段的0ah号功能获取关键字int21hcmpact1,0jeexit;如果为空直接退出程序a10:输入Sentence并判断leadx,changemovah,09int21h;输出回程,换行leadx,mess2movah,09int21h;输出EnterSentence:leadx,stoknin2movah,0ahint21h;用21号中段的0ah号功能获取句子moval,act1cbwmovcx,ax;保存关键字长度到cxpushcx;cx入栈moval,act2cmpal,0jea50;保存句子长度到al,若句子为空则跳转显示notmatchsubal,act1jsa50;若句子长度小于关键字长度,则跳转显示notmatchincalcbwleabx,stokn2;将句子的首地址放进BXmovdi,0movsi,0a20:;比较,内循环 movah,[bx+di] cmpah,stokn1[si] jnea30 incdi incsi deccx cmpcx,0 jea40 jmpa20a30:;外循环,BX+1,清空si,di继续内循环比较incbxdecalcmpal,0jea50movdi,0movsi,0popcxpushcxjmpa20a40:;match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出subbx,offsetstokn2incbxleadx,changemovah,09int21hleadx,mess3movah,09int21hcallbtohleadx,mess5movah,09int21hjmpa10btohprocnear;二进制转换十六进制 movch,4rotate:movcl,4 rolbx,cl moval,bl andal,0fh addal,30h cmpal,3ah jlprintit addal,7hprintit:movdl,al movah,2 int21h decch jnzrotate retbtohendp(4)实验结果(实验的运行结果)实验三分类统计字符的个数(1)设计思路(包括程序的原理,算法及数据结构等)(2)程序框图(画出程序主要部分流程图)(3)程序实现(注意:不用写出整体程序,写出部分关键代码即可,不要粘贴大量代码,代码后要求用文字描述代码完成的功能)(4)实验结果(实验的运行结果)实验四查找电话号码(1)设计思路(包括程序的原理,算法及数据结构等)(2)程序框图(画出程序主要部分流程图)(3)程序实现(注意:不用写出整体程序,写出部分关键代码即可,不要粘贴大量代码,代码后要求用文字描述代码完成的功能)DATASSEGMENT;此处输入数据段代码nameparlabelbytemaxnlendb21actnlendb?_namedb21dup(?);在MASM5.0下不能用name哦phoneparlabelbytemaxplendb9actplendb?phonedb9dup(?)crlfdb13,10,'$'endaddrdw?mess1db'Inputname:','$'mess2db'Inputatelephonenumber:','$'mess3db'Doyouwantatelephonenumber?(Y/N)','$'mess4db'name?','$'mess5db'name',16dup(''),'tel',0dh,0ah,'$'mess6db'Notinthetable.',0dh,0ah,'$'mess7db'Invalidinput!',0dh,0ah,'$'countdb0tel_tabdb50dup(20dup(''),8dup(''))tempdb20dup(''),8dup(''),0dh,0ah,'$'swappeddb0DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTmainprocfarASSUMECS:CODES,DS:DATAS,SS:STACKSpushdssubax,axpushaxMOVAX,DATASMOVDS,AXmoves,axcldleadi,tel_tab;di中存放表首地址;此处输入代码段代码inputloop:;提示'Inputname'movah,09hleadx,mess1int21h;callinput_namecmpactnlen,0;没有输入人名时jza10;直接跳到提示是否查找的地方cmpcount,50;输入上限jea10callstor_name;保存人名到tel_tab;提示'Inputatelephonenumber'movah,09hleadx,mess2int21h;callinput_stor_phone;输入并保存电话号码jmpinputloopa10:cmpcount,1jbesearchloop;如果没有输入或者输入一个callname_sort;排序searchloop:leadx,mess3movah,09hint21hmovah,01hint21hcmpal,'N'jeexitcmpal,'n'jeexitcmpal,'Y'jeshownamecmpal,'y'jeshownamemovah,09leadx,crlfint21hleadx,mess7;非法输入movah,09hint21hjmpsearchloopshowname:movah,09leadx,crlfint21hleadx,mess4;当输入Y时,显示'name?'movah,09int21hcallinput_name;输入要查找的人名callname_search;查找callprintlinejmpsearchloopexit:retmainendp;******************************************************input_nameprocnearmovah,0ahleadx,nameparint21hmovah,02hmovdl,0ah;换行int21hmovbh,0movbl,actnlenmovcx,21subcx,bxi20:mov_name[bx],20hincbxloopi20retinput_nameendp;*********************************************************stor_nameprocnearinccountcldleasi,_namemovcx,10;把name中的前20个字符放入tel_tab中每一个人信息的前20个byte中repmovswretstor_nameendp;*****************************************************input_stor_phoneprocnearmovah,0ahleadx,phoneparint21hmovah,02hmovdl,0ah;换行int21hmovbh,0movbl,actplenmovcx,9subcx,bx;计算剩下的长度is20:movphone[bx],20h;剩下的地方填充空格incbxloopis20cldleasi,phonemovcx,4;把phone中的前8个字符放入tel_tab中每一个人信息的后8个byte中repmovswretinput_stor_phoneendp;*****************************************************************name_sortprocnearsubdi,56;仔细想想为什么是这样的movendaddr,dins10:movswapped,0leasi,tel_tabns20:movcx,20movdi,siadddi,28;下一个被比较的名字movax,dimovbx,sirepecmpsbjbens30;小于或等于不用交换callnpxchgns30:movsi,axcmpsi,endaddrjbens20cmpswapped,0jnzns10retname_sortendp;*****************************************************npxchgprocnearmovcx,14leadi,tempmovsi,bxrepmovsw;moveloweritemtosavemovcx,14movdi,bxrepmovswmovcx,14leasi,temprepmovswmovswapped,1retnpxchgendp;************************************************************disp_allprocnearmovah,09hleadx,mess5int21hleasi,tel_tabda10:leadi,tempmovcx,14repmovswmovah,09hleadx,tempint21hdeccountjnzda10retdisp_allendp;*********************************************name_searchprocnearleasi,tel_tabmovbx,siaddendaddr,28nase10:leadi,_name;存放待查找的人名地址movcx,10repecmpswjcxznase_exit;相等addbx,28;表中下一个比较的人名movsi,bxcmpsi,endaddrjbenase10notintab:movcx,-1retnase_exit:movsi,bxleadi,tempmovcx,14repmovswretname_searchendp;*******************************************************printlineprocnearcmpcx,-1jenorecordmovah,09hleadx,mess5int21hmovah,09hleadx,tempint21hretnorecord:movah,09hleadx,mess6int21hretprintlineendpMOVAH,4CHINT21HCODESENDSENDmain(4)实验结果(实验的运行结果)三、课程设计(综合实验)总结或结论这是我第一次使用汇编语言编程,因为程序是给出的所以运行成功。我练习了使用DEBUG有关命令的使用方法。虽然比较难理解四、参考文献注意:要求打印,不要相互抄袭基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用HYPERLINK"/detail.htm?3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术保密与竞业禁止合同
- 合同物流服务在或将享受免征增值税优惠
- 新能源汽车电池供应商合同
- 如何书写护理专业论课件
- 制造业厂房租赁权转让合同范本
- 设备租赁代理合同条款
- 房产买卖合同置换协议
- 合资合同:商业拓展与协作
- 彩票设备供应与维修服务合同
- 矿山转让居间合同
- 西师版六年级下册数学课件(全册)
- 房地产标准踩盘表格模板
- 物联网项目实施进度计划表
- 学校校园安全巡逻情况登记表
- 光缆线路工程段终版施工图
- 矿井年度灾害预防和处理计划
- 毕业论文-基于Java Web的模拟驾校考试系统设计与实现
- MDD指令附录一 基本要求检查表2013版
- 新部编人教版四年级下册道德与法治全册教案(教学设计)
- 人美版高中美术选修:《绘画》全册课件【优质课件】
- 垂直度和跳动形位公差间的关系及取代应用下
评论
0/150
提交评论