;ä»å°å°å¤§æåº
;è¾åº20个æ°
DATAS SEGMENT
;æ¤å¤è¾å
¥æ°æ®æ®µä»£ç
NUM DW 3,2,1,0
COUNT EQU ($-NUM)/2 ;N个æ°
DATAS ENDS
STACKS SEGMENT
;æ¤å¤è¾å
¥å æ 段代ç
DW 40H DUP (?)
TOP LABEL WORD
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN PROC FAR
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
LEA SP,TOP
;æ¤å¤è¾å
¥ä»£ç 段代ç
MOV CX,COUNT
DEC CX
LEA SI,NUM
CLD
L2:
CALL SORT ;å泡æåºï¼æä»å°å°å¤§æåº
LOOP L2
MOV CX,COUNT
LEA SI,NUM
CLD
L3:
CALL OUTPUT ;è¾åºä¸ä¸ªåè¿å¶æ符å·æ°
MOV DL,' '
MOV AH,6
INT 21H ;è¾åºåé符
LOOP L3
MOV AH,4CH
INT 21H
MAIN ENDP
;ä¼ å
¥åæ°ï¼CXï¼æ¯è¾æ¬¡æ°ï¼SIï¼æ°ç»èµ·å§ä½ç½®ï¼æ°ç»
;è¿åå¼ï¼æ°ç»
;åè½ï¼å°æ大çæ°ç§»å°æ°ç»æ«å°¾
SORT PROC NEAR
PUSH CX
PUSH SI
L4:
LODSW
CMP AX,[SI]
JNA L5
XCHG AX,[SI]
MOV [SI-2],AX
L5:
LOOP L4
POP SI
POP CX
RET
SORT ENDP
;ä¼ å
¥åæ°ï¼SIï¼æ°ååå¨ä½ç½®
;è¿åå¼ï¼æ°ç»
;åè½ï¼ä»åå¨ä½ç½®ä¸ååºä¸ä¸ªæ°ï¼ä»¥åè¿å¶æ符å·æ°è¾åº
OUTPUT PROC NEAR
PUSH CX
PUSH DI
MOV DI,10
XOR CX,CX
LODSW
MOV BX,AX
TEST BX,8000H
JZ L12
MOV DL,'-'
MOV AH,2
INT 21H
DEC BX
NOT BX
L12:
MOV AX,BX
L13:
XOR DX,DX
DIV DI
ADD DX,30H
PUSH DX
INC CX
CMP AX,0
JNE L13
MOV AH,2
L14:
POP DX
INT 21H
LOOP L14
POP DI
POP CX
RET
OUTPUT ENDP
CODES ENDS
END START
温馨提示:答案为网友推荐,仅供参考