




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
青 岛 理 工 大 学课程实验报告课程名称汇编语言程序设计班级计算112实验日期2013.10.23姓名任师锋学号201107063实验成绩实验名称子程序实验目的及要求1、 掌握子程序设计相关指令和伪指令的使用方法2、掌握子程序设计方法,特别是参数传递方法3、掌握主程序和子程序之间的调用关系和调用方法4、熟悉循环和子程序结合应用解答问题的思路实验环境平台:win7 64位命令行方式工具:MASM.EXELINK.EXEDEBUG.EXE DOSBOX(一款软件,模拟dos环境)实验内容1、设DATA1开始的内存单元中,存放着一串带符号字数据,要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA1开始的单元。然后在显示器输出排好序的数据,中间用,隔开。2、输出数据使用子程序方式。算法描述及实验步骤实验步骤:根据流程图写源程序。1, 打开DOSBOX编译连接源程序。2, 找语法错误,若有则重复2.Debug调试找逻辑错误,若有则重复1.显示功能算法流程图标书:冒泡排序算法流程图:调试过程及实验结果调试数据1:1000 , 55 ,-2 ,100,200,99,30,-5,49,5排序结果:调试数据2:46 ,32 ,-22 ,100,20,99,35,-5,46,12,3,4,56,23,424,2345,2435,5调试数据3:9,4,3,22,4,5,23,13,2,34,23,34,43,13,5排序结果:调试数据4:100,0,89,12,78,23,78,45,78,56,10,23,2345,234,5排序结果:不足之处:对于超过一万的数据得不到正确的排序结果。原因还是在于算法的设计上,使用的寄存器单一的结果总结刚开始感觉子程序很简单,于是就信誓旦旦的开始做老师给的题目中最难的那个题目,可是,只有做的时候才是知道自己碰上了一个大钉子,并没有那么简单,需要做的事情真的是太多太繁杂了,什么保存中间结果什么的,把我的头搞的大大的。虽然之后也在这个问题上话了很长的时间,但仍然是一想需要保存那保存这,头就又开始变大了。于是,我就退而求其次,做少简单的那个。没想到,还真是简单。短短半个小时就搞定了,顺便也把实验报告写了。经过这次实验,我也明白了,其实我对于递归并没有深刻的理解。以后应该多做点这方面的题目。附录SSEG SEGMENT STACKSTD DB 200 DUP (0)SSEG ENDSDSEG SEGMENTDATA DW 1000 , 55 ,-2 ,100,200,99,30,-5,49DATAEND DW 5ENDX DW 0 ;存放末地址DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGASSUME SS:DSEG;-;程序名称:bubble;程序功能:冒泡排序;程序入口:si 存放数据串的首地址 ; ENDX存放数据串的末地址;程序出口:;受影响的寄存器 di,si,axBUBBLE PROC NEAROUT : CMP SI , ENDXJA TORETMOV DI ,SIIN :CMP DI , ENDX JA BREAK ;如果di指针值大于末地址值,退出内存循环MOV AX , SI ;暂时存储si 指向的内存单元的值CMP AX , DIJLE INFORXCHG AX , DIMOV SI , AXINFOR : INC DIINC DIJMP INBREAK : INC SIINC SIJMP OUTTORET : RETBUBBLE ENDP;- ;程序名称:display ;程序功能:在屏幕上输出存放在data单元的数据串 ;程序入口:si 存放数据串首地址,di存放数据串末地址 ;程序出口: ;受影响的寄存器:si ,di ax bx dx sp 标志寄存器 ;-DISPLAY PROC NEAR MOV AX ,DSEG MOV DS ,AX MOV AX ,SSEG MOV SS ,AX MOV SP ,SIZE STD ;堆栈指针 MOV SI , OFFSET DATA ;数据串的首地址 DISP : CMP SI , OFFSET DATAEND JA TOEND MOV BX , SI AND BX ,BX JNS FNEGT MOV DL , - ;负数先输出符号- MOV AH , 02H INT 21H NEG BX ; 负数取反变成正数FNEGT : MOV AX , BX ;AX 保存BX的副本 MOV BL , 10 ;此处应该是bl否则会出现错误 DIV BL ;除以10,商在AL中,余数在AH中 AND AL , AL JZ DIS ;如果AL中是0 ADD AH , 48 MOV BH , AH AND BL , 0 PUSH BX MOV BL , AL AND BH , 0 ;把商保存 JMP FNEGTDIS : ADD AH , 48 MOV BH , AH AND BL, 0 PUSH BX ;开始输出SHUCHU : CMP SP , SIZE STD JAE NEXT POP AX ;把堆栈中的第一个数放到AX中 MOV DL , AH MOV AH , 02H INT 21H JMP SHUCHUNEXT : CMP SI , OFFSET DATAEND JZ TIAOGUO MOV DL , , MOV AH , 02H INT 21HTIAOGUO : INC SI ;指针加1 ,跳转 INC SI JMP DISPTOEND : MOV AX , 4C00H INT 21HDISPLAY ENDPMAIN : MOV AX , DSEG MOV DS , AX MOV AX , SSEG MOV SS , AX MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宜宾市兴文县2024-2025学年三下数学期末监测试题含解析
- 南京中医药大学《社会工作技巧工作坊人际沟通技巧》2023-2024学年第二学期期末试卷
- 湛江市高三月调研考试文综地理试题
- 2025年度借款合同补充协议范本
- 2025租房合同模板范本
- 2025子女租赁公寓合同
- 2025家庭居室装饰装修工程设计施工合同范本
- 2025年高考历史总复习考前历史主干知识梳理提纲
- 2025济南市劳动合同样本新
- 2025年高考历史阶段特征总结汇编(超全面)
- FITS加氢说明书
- 半导体物理与器件物理
- 200句话搞定上海中考单词(精华版)
- 船舶辅锅炉的自动控制系统分析
- 新员工培训考试【图书专员】
- 防伪包装技术
- 49000DWT江海直达成品油船设计
- 建设工程监理费计算器
- X互联网公司WLAN无线网络优化方案全解
- 装配及检验规范(修订版)【新版】
- 合成宝石特征x
评论
0/150
提交评论