资源描述:
《循环程序设计莆田学院汇编实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电子信息工程学系实验报告成绩:课程名称:汇编语言程序设计指导教师(签名):实验项目名称:循环程序的设计实验时间:2012.12.13班级:计算机***姓名:***学号:010704203*******实验目的:掌握程序设计中的顺序结构和循环结构。实验环境:轻松汇编,DOS环境实验内容及过程:编程实现:(1)已知数据段定义如下:datasegmentxdb12arraydb1,5,8,16,18,21,-1dataends把数据x插入到数组array中。(2)已知数据段定义如下:datasegmentxdb16arr
2、aydb1,5,8,16,18,21,-1dataends从数组array中删除掉值等于x的元素。(3)已知数据段定义如下:datasegmentxdb8arraydb1,5,8,16,18,21,-1dataends找出x在数组array中的位置。(-1为数组结束的标志)第5页共5页实验结果及分析:(1)插入:(2)删除:(3)查找:把找到的位置放在CX寄存器中:实验心得:经过本次的实验操作,使我掌握了汇编种的顺序结构、循环结构的代码编写,对debug以及00、02之类的命令的理解。第5页共5页第5页共5页附录:
3、插入:程序代码:DATASEGMENTVACANCYDB?ARRAYDB1,5,8,16,18,21,-1XDB12DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVSI,0MOVAL,XBRA1:MOVBL,ARRAY[SI]CMPBL,-1JEBRA2CMPBL,ALJGEBRA2MOVBH,ARRAY[SI]MOVARRAY[SI-1],BHINCSIJMPBRA1
4、BRA2:MOVARRAY[SI-1],ALRETMAINENDPCODEENDSENDSTART第5页共5页程序框图:开始结束si<-0al<-xarray[si]不等于-1?array[si-1]<-xretarray[si-1]<-array[si]si<-si+1array[si]>x?bra1bra2NYYN第5页共5页删除操作:DATASEGMENTXDB16ARRAYDB1,5,8,16,18,21,-1DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DA
5、TASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAL,XMOVSI,0BRA1:CMPARRAY[SI],ALJEBRA2INCSIJMPBRA1BRA2:MOVBL,ARRAY[SI]CMPBL,-1JEBRA3MOVBL,ARRAY[SI+1]MOVARRAY[SI],BLINCSIJMPBRA2BRA3:RETMAINENDPCODEENDSENDSTART第5页共5页程序框图:开始结束si<-0al<-xarray[si]不等于-1?retsi<-si+1a
6、rray[si]=x?bra1bra3NYNYbra2array[si]<-array[si+1]si<-si+1array[si]不等于-1?YN第5页共5页查找操作:程序代码:DATASEGMENTXDB8ARRAYDB1,5,8,16,18,21,-1DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAL,X程序框图:MOVSI,0MOVCX,0BRA1:MOVBL
7、,ARRAY[SI]CMPBL,-1JEBRA3CMPARRAY[SI],ALJEBRA2INCSIJMPBRA1BRA2:ADDSI,1MOVCX,SIBRA3:RETMAINENDPCODEENDSENDSTART第5页共5页开始结束si<-0al<-xcx<-0array[si]不等于-1?retsi<-si+1array[si]=x?bra1bra3NYNYbra2si<-si+1cx<-si第5页共5页