⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bubble sort.asm

📁 用汇编,对确定个数的某数组进行冒泡排序,并显示
💻 ASM
字号:

datarea segment
 a    dw  11h,55h,33h,77h,22h,88h,99h,44h,66h,100h
 n    dw  10                       ;排序个数
datarea ends
;******************************************
prognam  segment
;------------------------------------------
main proc far
    assume  cs:prognam,ds:datarea
start:
      push  ds
      sub   ax,ax
      push  ax

      mov   ax,datarea
      mov   ds,ax
      mov   cx,n                                   
     
      dec   cx                     ;外重循环计数(比较遍数为个数减1)                                                    ;也是内重循环计数(第一编比较的次数)
loop1:
      mov   di,cx                  ;1)保存外重循环计数,
                                   ;2)给出下一内重循环的次数         
      mov   bx,0                   ; 初始偏移为0   
loop2:
      mov   ax,a[bx]               ;相邻两数比较     
      cmp   ax,a[bx+2]                  
      jge   cotinue                ;低地址数大,转
      xchg  ax,a[bx+2]             ;高地址数大,则交换
      mov   a[bx],ax               ;  ax作中间单元     
cotinue:
      add   bx,2                    
      loop  loop2                  ;相当于dec cx        ;此cx是内重循环计数
                                   ;      jnz loop2
      mov   cx,di                  ;恢复外重循环的计数cx
      loop  loop1                  ;相当于dec  cx       ;此cx是外重循环计数
                                   ;      jnz  loop1
      ret                  

main endp
;--------------------------------------------------------------
prognam ends
;**************************************************************
       end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -