匯編:匯編語言實現冒泡排序(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 ;=====================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM