1 ;=============================== 2 ;循环程序设计 3 ;条件转移指令实现 4 ;冒泡排序 5 ;for(int i=0;i;j++){ 7 ; if(array[j]>array[j+1]){ 8 ; exchange(array[j],array[j+1]); 9 ; }10 ; } 11 ;}12 DATAS SEGMENT13 N equ 16 ;待排序的个数14 DATAS ends15 CODES SEGMENT16 ASSUME CS:CODES, DS:DATAS17 START:18 mov AX,8000H ;待排序的内容的段地址19 mov DS,AX 20 21 mov bx,-122 mov si,1 23 24 flag1:25 mov di,026 27 flag2:28 mov al,[bx+di]29 cmp al,[bx+di+1]30 ja next1 ;大于31 xchg al,[bx+di+1] 32 mov [bx+di],al ;交换33 next1:34 inc di35 xor cx,cx36 mov cx,N-137 sub cx,si38 cmp di,cx39 jbe flag240 41 next2:42 inc si43 cmp si,N-144 jbe flag145 46 exit:47 mov ah,4ch48 int 21H49 CODES ends50 end START51 ;===============================