回 帖 发 新 帖 刷新版面

主题:[讨论]大虾们帮忙看一看啊,改正一下

题目
编程将block单元开始的100个字节的无符号数按升序排列

我先编了一个10个数的,但是不对啊,大虾们帮忙看一看啊,改正一下

DATA SEGMENT 
block  DB  5,1,3,4,7,2,9,8,6,0
DATA ENDS

STACK SEGMENT      
STACK1  DB  200 DUP(?)
STACK ENDS

CODE SEGMENT
ASSUME  CS:CODE,DS:DATA,SS:STACK

START:  
              MOV  AX,DATA
              MOV  DS,AX
              MOV  CX,9                              

              LEA  DI,block
              MOV  SI,DI                    
              ADD  SI,1                   
   
        

              PUSH SI                      
              PUSH DI
                 
 LP:        MOV  BX,CX                   
                  
 LP1:       

             MOV  AL,[DI] 
             CMP  AL,[SI]             
     
             JL   LP2               
           
   
             XCHG AL,[SI]           
             XCHG AL,[DI]
           

           
             DEC  BX                
             CMP  BX,0
             JZ   LP3            
             MOV  DI,SI           
              ADD  SI,1
              JMP LP1              


           
LP2:       DEC   BX
               CMP   BX,0
               JZ    LP3         
               ADD   SI,1
               ADD   DI,1
               JMP   LP1

LP3:       POP   DI         
           POP   SI
           LOOP  LP
    

          

          MOV AH,4CH
          INT 21H
 
CODE ENDS
END START

回复列表 (共2个回复)

沙发

你最好把你的算法用汉字简单
叙述一下,别人才好帮你

板凳

看看这个。
;从小到大排序
DSEG SEGMENT
    BUFFER DB 9,8,7,6,5,7,3,2,1,9
    N EQU 10
DSEG ENDS

CSEG SEGMENT
        ASSUME CS:CSEG,DS:DSEG
    START:
        MOV AX,DSEG
        MOV DS,AX
        MOV BX,OFFSET BUFFER - 1
        MOV SI,1
        
        FORI:
            MOV DI,SI
            INC DI
        FORJ:
            MOV AL,[BX+SI]
            CMP AL,[BX+DI]
            JBE NEXTJ
            XCHG AL,[BX+DI]
            MOV [BX+SI],AL
        NEXTJ:
            INC DI
            CMP DI,N
            JBE FORJ
        
        NEXTI:
            INC SI
            CMP SI,N-1
            JBE FORI
            
            MOV BX,OFFSET BUFFER
            MOV CX,N
            
        DISP:
            MOV DL,[BX]
            ADD DL,30H
            MOV AH,02H
            INT 21H
            MOV DL,20H
            MOV AH,02H
            INT 21H
            INC BX
            LOOP DISP
            
            MOV AH,4CH
            INT 21H
CSEG ENDS
    END START

我来回复

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