资源描述:
《实验二 数据处理实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二数据处理实验一、实验目的和要求1、学习在PC机上建立、汇编、链接和运行(调试)8086汇编语言源程序的过程;2、巩固学习汇编语言集成编译软件的使用方法;3、在对验证性实验理解与掌握的基础上,结合课堂讲授的有关简单程序、分支程序、循环程序、查表程序和子程序结构的各种设计方法,完成拓展实验项目的程序设计,达到培养学生自主学习、开拓创新能力培养之目的。二、实验软件星研集成环境软件或MASM.EXE、LINK.EXE、DEBUG.EXE。三、实验内容1、验证性实验[SI+BX]送AlBL送BH结束没找到,0FFH送AL(DH+DL)/2送SL最大偏移DH
2、=[SI]SI=SI+1,最小偏移DL=0当前偏移AH=0BH清零基址地址送SIBL=BH??编写并调试一个排序程序,要求使用冒泡排序法将一组数据从小到大重新排列,流程图如下所示。开始YAL=待查找值?AL>待查找值?AH送DLAL送DHNNYNY没找到,0FFH送AL找到,偏移值在AL中程序清单如下:stacksegmentdb100dup(?)stackendsdatasegmenttabdb0h,5h,6h,3h,8h,92h,4h,57h,46h,1h,0ffhdb0a0h,45h,99h,55h,66hdataendscodesegmenta
3、ssumecs:code,ds:data,ss:stackstar1:movax,datamovds,axnopcldmovcx,16-1star2:pushcxleasi,tabmovdl,0star3:lodsbmovah,[si]cmpah,aljnbstar5mov[si],almov[si-1],ahmovdl,1star5:loopstar3popcxcmpdl,0jzexitloopstar2exit:jmp$codeendsendstar12、拓展实验:输入X大于0Y输出1输入X等于0Y输出0输入X小于0Y输出-1X,Y都是字节变量程序
4、代码:datsegmentydb1dup(?)xdb10dup(?)datendscodesegmentassumecs:code,ds:dats1:movax,datmovds,axnopmovdx,offsetxmovah,0ah;输入字符串int21hcallnext1;回车换行movdx,offset[x+2]movbx,offset[x+2]movdi,[offset[x+1]]mov[bx+di],'$'calldisp2cmp[bx],2dh;与负号比jzfucmp[bx],30hjlexitjzzero0zhen:movdl,1+30h
5、calldisp1jmpexitfu:movdl,2dh;负号calldisp1movdl,1+30hcalldisp1jmpexitzero0:movdl,0+30hcalldisp1jmpexitdisp1procnear;输出dl里的单字符movah,2int21hretdisp2procnear;输出DX指向数组movah,9int21hretnext1procnear;回车换行MOVDL,0DHMOVAH,6INT21HMOVDL,0AHMOVAH,6INT21Hretexit:nopcodeendsend具体功能:从键盘敲入数字后屏幕输出显
6、示Y值实验小结:本次实验又多了解了几个指令,然后会用子程序的编写以及调用。会在从读出从键盘敲入的ASCII码同样输出也会。顺序结构,分支结构以及循环结构也会能自己用用了。还是调试时出问题。