回 帖 发 新 帖 刷新版面

主题:{求助}对十个数据进行排序(从大到小)并在屏幕山显示, 帮我看看这个程序的流程图!谢谢

对十个数据进行排序(从大到小)并在屏幕山显示
程序如下:
DSEG SEGMENT
BUFFER DW 1253H,4568H,5432H,5623H,4567H,9872H
       DW 33H,7650H,1234H,9876H
COUNT  EQU 10
DSEG ENDS
CSEG SEGMENT
     ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
       MOV DS,AX
       MOV DI,OFFSET BUFFER
       MOV SI,OFFSET [BUFFER+2]
       MOV AX,COUNT
       DEC AX
       MOV CX,AX
              
  L11:MOV AX,CX
       
    L1:MOV BX,[DI]
       CMP BX,[SI]
       JA  L2
       XCHG BX,[SI]
       XCHG BX,[DI]
L2:    ADD SI,2
       LOOP L1
       ADD  DI,2
       MOV  SI,DI
       ADD  SI,2
       MOV  CX,AX      
       LOOP L11
           
              
       CALL FAR PTR FOER
       MOV AH,4CH
       INT 21H
FOER PROC FAR
     PUSH AX
     PUSH BX
     PUSH CX
     PUSH DX

     MOV SI,OFFSET BUFFER
     MOV CX,10
NEXT:MOV DI,CX
     MOV BX,[SI]
     MOV CL,12
     SHR BX,CL
     AND BX,000FH
     ADD BX,30H
     MOV DL,BL
     MOV AH,2
     INT 21H

     MOV BX,[SI]
     MOV CL,8
     SHR BX,CL
     AND BX,000FH
     ADD BX,30H
     MOV DL,BL
     MOV AH,2
     INT 21H

     MOV BX,[SI]
     MOV CL,4
     SHR BX,CL
     AND BX,000FH
     ADD BX,30H
     MOV DL,BL
     MOV AH,2
     INT 21H

     MOV BX,[SI]
     AND BX,000FH
     ADD BX,30H
     MOV DL,BL
     MOV AH,2
     INT 21H
     MOV DL,'H'
     MOV AH,2
     INT 21H
     MOV DL,0DH
     MOV AH,2
     INT 21H
     MOV DL,0AH
     MOV AH,2
     INT 21H
    
     ADD SI,2
     MOV CX,DI
     LOOP NEXT

     POP DX
     POP CX
     POP BX
     POP AX
     RET
FOER ENDP
CSEG ENDS
     END START
程序运行完全正确
对于NEXT 后面的程序运行情况  
我不是很了解
请高手解析一下

回复列表 (共2个回复)

沙发

没注释.....

板凳

谢谢你啊
我已经搞懂了
注释忘了写  下次不会了

我来回复

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