回 帖 发 新 帖 刷新版面

主题:求助:用汇编如何交替冒泡  怎么还没有人来答啊 5555555555

设计汇编语言程序,实现冒泡排序的功能,具体功能要求如下:
(1)将字数组ARRAY中的n个数据,用冒泡排序法排列在原数组中;
(2)显示输出排序后的结果;
(3)冒泡时,从前往后扫描与从后往前扫描交替进行。

[em18]
这个是不是要交替??就下面这个程序怎样按照上面要求交替冒泡?
DAT SEGMENT
BUF DB 'S','D','X','V','A'
     DB 13,10,'$'
COUNT EQU $-BUF-3
DAT ENDS

STAC SEGMENT STACK
     DW 100 DUP(?)
STAC ENDS

COD SEGMENT
     ASSUME CS:COD , DS:DAT
     ASSUME SS:STAC , ES:DAT
STA: MOV AX,DAT
       MOV DS,AX

      MOV AH,COUNT-1
L1:  MOV CH,AH
      XOR CL,CL
      LEA SI, BUF
L2:  MOV AL,[SI]
      CMP AL,[SI+1]
      JC L3
      XCHG AL,[SI+1]
      MOV [SI],AL
      MOV CL,1
L3:  INC SI
      DEC CH
      JNZ L2
      CMP CL,1
      JC L4
      DEC AH
      JNZ L1
L4: MOV DX,OFFSET BUF
     MOV AH,9
     INT 21H
COD ENDS
     END STA
请高手指教啊 急待中

回复列表 (共1个回复)

沙发

我有一个32位的程序,你可以看一下啊。
BubbleSort PROC uses esi eax ecx,pArray:PTR DWORD,count:DWORD
    mov ecx,count
    dec ecx
L1: push ecx
    mov esi,pArray
L2: mov eax,[esi]
    cmp [esi+4],eax
    jge  L3
    xchg eax,[esi+4]
    mov  [esi],eax
L3: add  esi,4
    loop L2
    pop ecx
    loop L1
L5: ret
BubbleSort endp

我来回复

您尚未登录,请登录后再回复。点此登录或注册