实验五 利用汇编语言进行分支程序设计.docxVIP

  • 15
  • 0
  • 约2.98千字
  • 约 12页
  • 2017-06-21 发布于河南
  • 举报

实验五 利用汇编语言进行分支程序设计.docx

实验五 利用汇编语言进行分支程序设计

数学与软件科学学院 实验报告学期:2013 至 2014 第 二 学期 4月 25日 课程名称:汇编语言 专业: 信息与计算科学 2011 级 5 班实验编号:5 实验项目: 指导教师姓名: 学号: 实验成绩:实验五利用汇编语言进行分支程序设计(4学时)实验目的:主要掌握汇编语言分支程序设计技术。重点掌握分支程序设计中的条件判断和准备等技巧。实验内容:(任选其二)主要实验实例:1. 比较AX、BX和CX(或三个从BUFF位置连续的数据)中带符号的数据,将大者存放于AX中,小者存放于 CX,中者存放于BX。2. 试编写一个将16#数转换为对应ASCII码的程序。3. 试编写一个统计学生成绩的程序。分别统计分数在60分以下的,60-69段,70-79段,80-89段,90-99段和100段的人数,并分别将它们存放在RESULT开始的存储单元中。实验准备:汇编语言条件判断和转移指令知识,分支程序设计的基本方法。实验步骤:(1) 完成源程序设计任务,并准备好测试用例,分析其可能的测试结果;(2) 上机运行和测试所写的程序;(3) 进行实验分析;(4) 编写实验报告。实验结果:(1) 根据测试目标写出测试报告;(2) 测试结果分析说明;(3) 测试程序代码清单。1. 比较AX、BX和CX(或三个从BUFF位置连续的数据)中带符号的数据,将大者存放于AX中,小者存放于 CX,中者存放于BX。用冒泡排序法,对从BUFF内存单元开始三个数,按从大到小顺序进行排序,然后再分别将三个数移到AX、BX、CX中,算法流程图如下所示:在此算法基础上编写的源代码如下:data segment buff dw 25,-9,10 ;initial arrydata ends;------------------------------------------------------------prognam segment;------------------------------------------------------------main proc far assume cs:prognam,ds:data;begin:;set up stack for return push ds sub ax,ax push ax; mov ax,data mov ds,ax mov cx,3 dec cx;the first loop for look current store spaceloop1: mov di,cx mov bx,0;the second loop for compareloop2: mov ax,buff[bx] cmp ax,buff[bx+2] jge continue xchg ax,buff[bx+2] ;exchange to make the biger number store in low word mov buff[bx],axcontinue: add bx,2 loop loop2 mov cx,di ;if inner loop end,jmp to exter loop loop loop1;move buffs value to register mov ax,[buff] mov bx,[buff+2] mov cx,[buff+4] retmain endp;--------------------------------------------------------------------prognam ends end begin对源代码编译链接然后使用debug跟踪执行此时使用-d ds:0000查看当前内存单元中的值,如下所示:(即为数组初始化时的值)┇┇经过若干步跟踪执行,原数组buff中的数已经完成排序使用-d ds:0000查看内存单元中得值,此时即为冒泡排列后的整序情况:最后将数组中的三个数分别移到AX、BX、CX中由上可知,源代码执行后可以成功的将数组buff中的值按降序整序。二、试编写一个统计学生成绩的程序。分别统计分数在60分以下的,60-69段,70-79段,80-89段,90-99段和100段的人数,并分别将它们存放在RESULT开始的存储单元中。分析后绘制程序流程图根据以上算法编写源代码:DSEG SEGMENT RECORD DW 76,69,84,90,73,88,99,63,100,80 S6 DW 0 ;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档