汇编:汇编语言实现冒泡排序(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://sugarat.top