主题:[讨论]子程序的问题,有什么错误?大家讨论一下
排序程序
DATA SEGMENT
BUF DB 1H,2H,3H,4H,5H,6H,7H,8H,9H,10H
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET BUF
CALL SUNXU
MOV AL,4CH
INT 21H ;到这里时不退出,继续向下执行。是什么问题呀!
SUNXU PROC NEAR
MOV CX,9
S2: PUSH BX
PUSH CX
MOV AL,[BX]
ADD CX,1H
MOV DX,CX
SUB DX,1H
MOV CX,DX
S0: MOV AL,[BX]
CMP AL,[BX+1]
JB S1
JMP S3
S1: MOV DL,[BX+1]
MOV [BX],DL
MOV [BX+1],AL
S3: INC BX
LOOP S0
POP CX
POP BX
LOOP S2
RET
SUNXU ENDP
CODE ENDS
END START
DATA SEGMENT
BUF DB 1H,2H,3H,4H,5H,6H,7H,8H,9H,10H
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET BUF
CALL SUNXU
MOV AL,4CH
INT 21H ;到这里时不退出,继续向下执行。是什么问题呀!
SUNXU PROC NEAR
MOV CX,9
S2: PUSH BX
PUSH CX
MOV AL,[BX]
ADD CX,1H
MOV DX,CX
SUB DX,1H
MOV CX,DX
S0: MOV AL,[BX]
CMP AL,[BX+1]
JB S1
JMP S3
S1: MOV DL,[BX+1]
MOV [BX],DL
MOV [BX+1],AL
S3: INC BX
LOOP S0
POP CX
POP BX
LOOP S2
RET
SUNXU ENDP
CODE ENDS
END START