汇编:汇编语言实现冒泡排序(loop指令实现)

 1 ;===============================
 2 ;循环程序设计
 3 ;loop指令实现
 4 ;冒泡排序
 5 ;for(int i=0;i<N;i++){
 6 ;   for(int h=0;j<N-1-i>;j++){
 7 ;      if(array[j]>array[j+1]){
 8 ;           exchange(array[j],array[j+1]);
 9 ;        }
10 ;   }   
11 ;}
12 DATAS SEGMENT
13 buffer db 12,3,6,23,54,121,99,100,46,23 ;待排序的10个数
14 DATAS ends
15 CODES SEGMENT
16     ASSUME CS:CODES, DS:DATAS
17     START:
18         mov AX,DATAS        ;待排序的内容的段地址
19         mov DS,AX          
20 
21         mov bx,offset buffer ;待排序的内容的偏移地址
22         mov si,0        ;外层循环起始下标0               
23         xor cx,cx
24         mov cl,10       ;设置外层循环次数
25 
26     flag1:
27         mov di,0        ;内层循环起始地址下标0
28         push cx         ;cx次数压栈
29     flag2:
30         mov al,[bx+di]
31         cmp al,[bx+di+1]
32         ja next1            ;大于
33         xchg al,[bx+di+1]   
34         mov  [bx+di],al     ;交换
35     next1:
36         inc di
37         loop flag2
38         pop cx          ;内层循环完毕时 出栈
39     next2:
40         inc si
41         loop flag1
42 
43     exit:
44         mov ah,4ch
45         int 21H
46 CODES ends
47     end START
48 ;=====================

 

转载于:https://www.cnblogs.com/roseAT/p/10249569.html

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值