汇编冒泡 排序

更新时间:2023-10-09 08:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

汇编大作业之冒泡排序

班 级: 学 号: 姓 名: 设计日期

西安科技大学计算机学院

冒泡排序

一、 实验目的

熟悉并能够掌握汇编语言的程序设计及程序调试 二、 实验内容

冒泡排序实现从键盘输入的10个数字的降序排列.

1、冒泡排序的思想:

冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。

冒泡排序法的基本过程如下:

首先,从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小,若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个逆序,显然,在扫描过程中,不断地将两个相邻元素中的大者往后移动,最后就将线性表中的最大者换到了表的最后;

然后,从后到前扫描剩下的线性表,同样,在扫描过程中逐次比较相邻两个元素的大小,若相邻两个元素中,后面的元素小于前面的元素,则将它们互换,这样就又消去了一个逆序,显然,在扫描过程中,不断地将两相邻元素中的小者往前移动,最后就将剩下线性表中的最小者换到了表的最前面;

对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时的线性表已经变为有序。

在上述排序过程中,对线性表的每一次来回扫描,都将其中的最大者放到了表的最后,最小者像气泡一样冒到表的开头,因此这种排序叫做冒泡排序。 2、debug相关知识

命令 格式 命令 格式

汇编 A [地址] 命名 N [设备:][路径]文件名[.扩展名] 比较 C [范围] 输出 O 口地址

转出 D [范围]或[地址] 继续执行 P [=地址][值] 键入 E 地址[表] 退出 Q

填入 F 范围表 寄存器 R [寄存器]

执行 G [=地址][地址[地址...]] 搜索 S 范围表 十六进制 H 值 值 跟踪 T [=地址]或[范围] 输入 I 口地址 反汇编 U [地址]或[范围]

装入 L [地址][设备扇区,扇区]] 写 W [地址[设备扇区,扇区]]

3、参加测试的10个数据:

1,2,3,5,4,26,9,3,0

三、程序流程图

开始 (COUNT1)←1 (COUNT2)←(COUNT1) I←0 Y AI>=AI+1? N AI ←→AI+1 I=I+1 (COUNT2)←(COUNT2)-1 Y (COUNT2)=0Y (COUNT1)←(COUNT1)-1 Y (COUNT1)=0Y 结束 四、冒泡汇编源程序

DATA SEGMENT

A DW 12H,13H,14H,15H,16H,17H,18H,19H,20H,22H Z DW 6 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:PUSH DS SUB AX , AX PUSH AX

MOV AX,DATA MOV DS,AX MOV CX,Z

CALL FAR PTR MAIN MOV AH,4CH INT 21H

MAIN PROC FAR DEC CX

LOOP1: MOV DI,CX MOV BX,0 LOOP2:MOV AX,A[BX] CMP AX,A[BX+2] JGE COTINUE XCHG AX,A[BX+2] MOV A[BX],AX

COTINUE: ADD BX,2 LOOP LOOP2 MOV CX,DI LOOP LOOP1 RET

MAIN ENDP CODE ENDS

END START

五、运行结果

生成obj文件,生成exe文件,进行调试

输入测试数据

六、实验总结

综合型实验最锻炼我们的能力,做的过程中每实现一个小功能都很有成就感,遇到难题,大家一切讨论共同提高,收益颇多,熟悉了汇编编程的BEGUG过程,了解掌握汇编程序设计的方法步骤,与此同时,也暴露出学习中的盲点,弥补了不足。

本文来源:https://www.bwwdw.com/article/rk9f.html

Top