计算机组成原理实现冒泡排序,计算机组成原理实验-基于x86汇编指令实现冒泡排序...

计算机组成原理实验之基于x86汇编指令实现冒泡排序

1-97-png_6_0_0_134_67_144_24_892.979_1262.879-800-0-0-800.jpg

1-96-png_6_0_0_270_67_60_24_892.979_1262.879-336-0-102-336.jpg

1-96-png_6_0_0_310_67_46_24_892.979_1262.879-255-0-203-255.jpg

1-96-png_6_0_0_134_1160_61_24_892.979_1262.879-337-0-304-337.jpg

1-96-png_6_0_0_175_1160_69_24_892.979_1262.879-385-0-405-385.jpg

1-97-png_6_0_0_227_1160_198_24_892.979_1262.879-1101-0-506-1101.jpg

1-95-png_6_0_0_749_1160_17_24_892.979_1262.879-95-0-608-95.jpg

1-102-png_6_0_0_363_124_91_37_892.979_1262.879-507-0-775-507.jpg

1-97-png_6_0_0_423_124_86_37_892.979_1262.879-476-0-882-476.jpg

1-104-png_6_0_0_488_124_135_37_892.979_1262.879-750-0-984-750.jpg

1-104-png_6_0_0_596_124_189_37_892.979_1262.879-1050-0-1093-1050.jpg

1-86-png_6_0_0_134_302_25_32_892.979_1262.879-139-0-1202-139.jpg

1-90-png_6_0_0_151_302_12_32_892.979_1262.879-64-0-1293-64.jpg

1-90-png_6_0_0_169_302_72_32_892.979_1262.879-399-0-1388-399.jpg

PB12011047

施连杰

本程序设计中,假设最终将给出的待排序列NUM[1…n]按从小到大有序排列。此时冒泡排序的原理为,每趟比较从第一个元素开始,将相邻两元素NUM[i]与NUM[i+1]比较,若NUM[i]大于NUM[i+1],则交换两元素,于是每趟比较总能将本次序列中最大的元素NUM[im]交换到末尾。再进行下一轮比较,由于最大元素已经沉底,不必再参与比较,因此序列的末尾前移一项,此时又可将剩余元素中的最大元素沉底。不断重复单趟排序,直到序列的头尾相重合,则冒泡结束,得到了有序序列。

根据冒泡排序的原理,可以得到程序的基本设计思路,即采用两重循环来实现。第一重循环控制每趟排序,第二重循环则控制单趟排序中的每次比较。

用DI存放控制第一重循环的计数值,初始化为COUNT-1,COUNT是数组中的元素个数;每一轮循环结束,递减DI值并利用JNZ条件跳转语句判断循环是否继续。BX用于存放数组元素序号,每一轮第一重循环开始时BX初始化为0;由于数据采用DW格式,故[BX]每次递增的值应为2。

第二重循环中,每次比较时将NUM[BX]的值移入寄存器AX中,并与NUM[BX+2]的值进行比较,利用JLE条件跳转指令,若NUM[BX]>NUM[BX+2],则交换两者的值。此外,寄存器DX用以存放每趟排序的终点,初始化为2*(COUNT-1);每趟排序完成后,由于最大元

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值