资源描述:
《循环与分支程序设计二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、集美大学计其机工程学院实验报告课程名称汇编语言程序设计实验名称实验三、循环与分支程序设计二实验类型设计型—姓名学号日期2012-4-13地点成绩教师评语:第顷共5页1•实验目的及内容1•实验目的掌握循环程序设计的方法,掌握程序的调试技术。2.实验内容程序接收用户键入的一个关键字及一个句子,若句子中不包含关键字则显示“Nomatch!”;如果句子包含关键字则显示“Match!”.且把该字在句子中的位置,用十六进制数显示出來。2.实验环境Masmforwindows集成实验环境20123•实验方法a.输入关键字和句子;b.讷用孑終疼,逬矽帛西紀,将簿比施旬孑的帛首他仏诒di,侈弄縫夕的帛首込爼诒s
2、i,省逍&帛比筱;C.比筱倨采枸同,跳的到12,5'match9,為用16电刮鏑出矣縫字含旬孑力的色蛊;D.移比筱不固时,妮家北豺DI有浚有到旬孑未屋的后一个#有刖握孑4nomatch5o4•实验步骤1•编写汇编和链接源程序产主可执行文件“31.exe”;2.设计实验数据关键字“mey",旬了“zxcvbnnuisdfghjklqwertyu”,则结果应该为"Nomatch!",实验数据二,关键/“match”,"qwertyuiopa,sdfghjklz,matchku”则实验结果应该为"match!atlocation19”;3•若果实验失败,则实验DEBUG进行调试,检查错误,如果成功则
3、记卜-实验结果;5•实验结论折D:M3smbiaDWTEmp.exePleaseinputkeyword:me*/Pleaseinputsentence:zxcubnnasdfghjklqwertyuNonatch?Pressanykeytocontinue樹D:MasmbinDWTemp.exe••••Pleaseinputkeyword:matchPleaseinputsentence:qwertyuiopa.sdFghjklz.matchkuMatch?Atlocation:19Pressanykeytocontinue6.实验分析木实验屮运用到了字符串操作cmpsb,刚开始
4、只把定义的数据段地址给DS,而没有把地址给ES(即正确的为MOVAX,DATASMOVDS,AXMOVES,AX,),导致程序无法运行,并且这个程序在比较字符串的的时候运用到了循环结构,当匹配成功的时候,把所在地址转换为十六进制。附件1.程序流程图2.汇编程序实验代码datasegmentkeyworddb'Pleaseinputkeyword:$zsentencedb'Pleaseinputsentenced'mo七chdbzAtlocation:$zmaxwdb10lenwdb?wordb10dup(?)maxsdb100lensdb?sentdb100dup(?)nodb13.10/No
5、matchlS*yesdb13,10,'Ma七也!$’dataendsputmacrox;歸出堤孑传直movdx,offsetxmovah.9int21hendmcinmacroy;籀入字為帛movdx,offsetymovah.10int21hendmcoutmacrowmovdl,wmovah.2int21hendmcodesegmen七assumecs:code.ds:data,es:datastart:movax.datamovds.axmoves,axputkeywordcinmaxwcout13cout10putsentencecinmaxscallkmp;诵用孑終唐,逬紂帛匹紀m
6、ovah,4chint21hkmpprocnearleadi,sentM比筱旬孑的帛首他於涪DIxorbx,bxxorch,ch11:movcl,[lenw]leasi.wor;将乏縫字的帛首的他诒SIadddLbxcldrepecmpsb;逬紂帛比筱jzI2;比殓倨果枸同,跳树到I2,摆孑'match'leadi.sentincbxcmpbl,[lens]jzI4浊比筱不固时,妮察北豺DI侖浚侖到旬孑未毘的后一个单元,有刖堤孑4nomatch,jmp11I4:putnojmpI3I2:putyescout13cout10putmatchincbxmovex,4SHLbx,clSHRbl.cl
7、cmpbLOahjbnex七addbl,7next:addbx,3030hcoutbhcoutbl;用16逬制鏑出矣縫字右旬孑中的迄£I3:retkmpendpcodeendsendstart