📄 keshe.asm
字号:
JMP BEGIN7
BEGIN20:
CALL CLEARSCREEN
JE BEGIN21
BEGIN21:
MOV BX,OFFSET MSGB
CALL DISPLAY1
CALL S_BXCHG
CALL EXIT2
BEGIN9: MOV AH,1 ;对输入的5个数进行排序
INT 21H
MOV BX,0
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
CALL COMPOSITOR1 ;调用从大到小排序程序
CALL DISPA
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
CALL EXIT2 ;调用退出程序
BEGIN10: MOV AH,1 ;读入从小到大排序时输入的5个数
INT 21H
MOV BX,0
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
MOV AH,1
INT 21H
ADD BX,2
MOV AH,0
MOV A[BX],AX
CALL DISPCHAR
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
CALL COMPOSITOR2 ;调用从小到大排序程序
CALL DISPA
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
EXIT2 PROC NEAR ;退出程序
WIN 0,07H,15,10,17,61
WIN 0,24H,14,9,16,60
MOV DH,15 ;行
MOV DL,9 ; 列
MOV BH,0 ; 页号
MOV AH,2 ; 置光标 位置
INT 10H
LEA DX,MSG9
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CMP AL,79H ;比较 y
JZ QUIT
Q:
CMP AL,6EH ; 比较n
JZ C
C:
CALL CLEARSCREEN
CALL BEGIN0
BEGIN14:
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
QUIT:
MOV AH,4CH
INT 21H
EXIT2 ENDP
MAIN ENDP
;*******子程序***************************************
COMPOSITOR1 PROC NEAR ; 从大到小比较程序
MOV CX,5
DEC CX
LOOP1:
MOV DI,CX
MOV BX,0
LOOP2:
MOV AX,A[BX]
CMP AX,A[BX+2]
JGE CONTINUE1
XCHG AX,A[BX+2]
MOV A[BX],AX
CONTINUE1: ADD BX,2
LOOP LOOP2
MOV CX,DI
LOOP LOOP1
RET
COMPOSITOR1 ENDP
COMPOSITOR2 PROC NEAR ; 从小到大比较程序
MOV CX,5
DEC CX
LOOP3:
MOV DI,CX
MOV BX,0
LOOP4:
MOV AX,A[BX]
CMP AX,A[BX+2]
JBE CONTINUE2
XCHG AX,A[BX+2]
MOV A[BX],AX
CONTINUE2: ADD BX,2
LOOP LOOP4
MOV CX,DI
LOOP LOOP3
RET
COMPOSITOR2 ENDP
;==========================================================
DISPLAY1 PROC NEAR ;输出整行字信息
MOV CX,25H
DISP1: MOV DL,[BX]
CALL DISPCHAR
INC BX
LOOP DISP1
MOV DL,0DH
CALL DISPCHAR
MOV DL,0AH
CALL DISPCHAR
RET
DISPLAY1 ENDP
;===========================================================
DISPCHAR PROC NEAR ;输出字符
MOV AH,2
INT 21H
RET
DISPCHAR ENDP
;==========================================================
DISPA PROC NEAR ;对排序后的五个数进行输出
MOV BX,0
MOV DX,A[BX]
CALL DISPCHAR
ADD BX,2
MOV DX,A[BX]
CALL DISPCHAR
ADD BX,2
MOV DX,A[BX]
CALL DISPCHAR
ADD BX,2
MOV DX,A[BX]
CALL DISPCHAR
ADD BX,2
MOV DX,A[BX]
CALL DISPCHAR
RET
DISPA ENDP
;=================================================
S_BXCHG PROC NEAR ;小写字母向大写字母转换
NEXT3: MOV AH,01
INT 21H
CMP AL,61H
JL EXIT
CMP AL,7AH
JG EXIT
MOV BL,AL
MOV DL,0DH
MOV AH,02
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
SUB BL,20H
MOV DL,BL
MOV AH,02
INT 21H
MOV DL,0DH
MOV AH,02
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
JMP SHORT NEXT3
EXIT: RET
S_BXCHG ENDP
;=============================================
B_SXCHG PROC NEAR ;大写字母向小写字母转换
NEXT4: MOV AH,01
INT 21H
CMP AL,41H
JL EXIT1
CMP AL,5AH
JG EXIT1
MOV BL,AL
MOV DL,0DH
MOV AH,02
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
ADD BL,20H
MOV DL,BL
MOV AH,02
INT 21H
MOV DL,0DH
MOV AH,02
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
JMP SHORT NEXT4
EXIT1: RET
B_SXCHG ENDP
;====================================================
CLEARSCREEN PROC NEAR ;清屏程序
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,6
MOV AL,0
MOV BH,30
MOV CH,0
MOV CL,0
MOV DH,200
MOV DL,50
INT 10H
MOV DX,0
MOV AH,2
INT 10H
POP DX
POP CX
POP BX
POP AX
RET
CLEARSCREEN ENDP
;========================================================
PROGNAM ENDS
;******************************************************
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -