最新实验四_循环结构汇编语言程序设计实验报告.docxVIP

  • 46
  • 0
  • 约3.75千字
  • 约 10页
  • 2021-03-01 发布于天津
  • 举报

最新实验四_循环结构汇编语言程序设计实验报告.docx

a a 循环结构汇编语言程 序设计实验报告 实验四循环结构汇编语言程序设计 一、 实验目的 1、 学习循环结构的汇编语言程序的设计和调试。 2、 学习通过直接对8086计算机的寄存器和内存的直接访问, 编写更高效简洁 的汇编程序。 3、 加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、 实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。(快速排序,归并排序、堆排序、 Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序 ……) 三、 实验内容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实 1、利用冒泡排序的方式求解数组 A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示: 四、实验环境 PC 机: winXP/win7(32 位)/win7(64 位)+winxp 虚拟机 汇编工具: Masm.exe+L in k.exe。 五、实验步骤 1)建立和生成的文件 (1) 编写的源程序,源程序名为 abc、扩展名为.asm (2) 源程序经汇编程序 Masm.exe汇编(翻译)后生成二进制目标程序,文件 名为 abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为 abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷 入到已经建好的文件夹(例如 huibian )中,并将文件夹huibian放在硬盘根目 录 >下 3) 上机步骤 进入DOS窗口中执行。 4) 调试程序 进入DEBUG后,调试程序 5) 调试成功后重新汇编、连接并生成可执行代码 6) 执行程序,并对运行结果截图。 利用冒泡排序求得数组 A中元素的最大值最小值的实验结果如下图所示: (说明:输入数据为:13,0,59,900,587,1,657,234,34,48) | ■■命今提示符 - debus ale, 匚nx] ubject filename fabc,OBJ]: Source list;inj rNUL.LST J: Crass—refErenee LNUL-CRF]: E0609: * ^11032 o i/nb?l opaco f iLao 9 Uam ing Errors 3 Seuere Errors k?: KyiuibianSMink abc Micro soft Over 丄 siy Linkei (Jers ion 3.6M Copiiriaht C Microsoft Carp 1933—19R9, All rights reserved - Bun File [ftDC,EWEl= List File [NUL.H口 Libj*arijes L. LI B J : LFNK : UAPnin? L4W21 : no stack seonfinr. C : xlm abc . cxrc rs the maK:UMyUOthe tei^rniiriAted nnvnnll y 利用选择排序对数组 A中元素排序得到的序列得实验结果如下图所示:(说 明:输入数据为 13,0,59,900,587,1,657,234,34,48) 4 77 030503^489 4 77 0 3050 3^489 六、 实验心得 通过本次循环结构汇编语言程序设计的实验,我初步了解了汇编语言的基本 语法,利用汇编语言的循环结构实现了对于数组 A中元素的排序以及求得元素 中的最大值最小值。另外,在实验过程中,我也了解到了,我们要时刻细心严谨, 认真做好每一步,避免出现低级错误。 七、 汇编语言代码 1、利用冒泡排序实现求最大值最小值的代码 data segme nt mesl db the max:$ mes2 db the mi n:$ a dw 13,0,59,900,587,1,657,234,34,48 data ends code segme nt mai n proc far assume cs:code,ds:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax ;以下是起泡排序核心代码 mov cx,10 dec cx loopl: mov di,cx mov bx,0 loop2: mov ax,a[bx] cmp a[bx+2],ax jge coti nue xchg ax,a[bx+2] mov a[bx],ax coti nue: add bx,2 loop loop2 mov cx,di loop loop

文档评论(0)

1亿VIP精品文档

相关文档