找错找错,求大侠帮忙找错!!!!
计算比赛成绩基本功能:
(1) 有9名评委,每个评委给分范围为0~10(整数):由键盘输入;
(2) 9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点后二位,不考虑四舍五入);
(3) 将最后得分在光标位置处显示出来。
以下是我写的汇编程序,程序可以运行,从理论上讲也应该是可以实现功能,但是在最后输入数据后却不能正确显示结果,求大侠帮忙找出到底在哪弄错了
DATA SEGMENT
BIN DB 9 DUP(0)
BIN1 DB ' JUDGE '
BIN2 DB 31h,':','$'
BIN3 DB ' RSULT:','$'
S DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BININ: MOV AX,DATA
MOV DS,AX
XOR SI, SI ; xor (异或)在这里相当于清零
MOV CX,9
;--------------------------------------------------------------------
INPUT:LEA DX, BIN1
MOV AH, 9H ;实现DOS调用中的09号功能,屏幕上显示字符窜
INT 21H
;-------------从键盘上输入数据-----------------------------------------
MOV AH,01H
INT 21H
MOV BIN[SI], AL
INC SI
INC BIN2
;-------------实现回车换行功能------------------------------------------
MOV AH, 02H
MOV DL,0AH
INT 21H
MOV DL , 0DH
INT 21H
;----------------------------------------------------------------------
LOOP INPUT
CALL PAIXU ;调用子程序实现数据排序(采用了气泡排序方法)
LEA DX,BIN3
MOV AH,9
INT 21H
CALL SUM ;调用子程序实现求和功能(去掉最小和最大值)
;--------------实现除法运算----------------------------------------------
MOV AL, S
XOR AH, AH
MOV BL, 7
DIV BL
MOV S, AL
;输出整数-------------------------------------------------------------
PUSH AX
MOV DL,S
MOV AH,02h
INT 21H
;输出小数点--------------------------------------------------------------
MOV DL,'.'
MOV AH ,02h
INT 21H
;输出小数位--------------------------------------------------------------
POP AX
MOV AL,AH
MOV CL,10
MUL CL
MOV BL,7
DIV BL
MOV DL,AL
XOR DL,30H
MOV AH,2
INT 21H
MOV AL,AH
MOV CL,10
MUL CL
MOV BL,7
DIV BL
MOV DL,AL
XOR DL,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
;气泡排序子程序算法实现-----------------------------------------------
PAIXU PROC NEAR
PUSH AX
PUSH BX
PUSH CX
MOV CX,9
DEC CX
LOOP1:MOV DI,CX
MOV BX,0
LOOP2:MOV AL,BIN[BX]
CMP AL,BIN[BX+1]
JGE CONTINUE
XCHG AL,BIN[BX+1]
MOV BIN[BX],AL
CONTINUE:ADD BX,1
LOOP LOOP2
MOV CX,DI
LOOP LOOP1
POP CX
POP BX
POP AX
RET
PAIXU ENDP
;求和子程序算法实现----------------------------------------------------------
SUM PROC NEAR
PUSH AX
XOR SI,SI
MOV CX,6
MOV AL, BIN[SI+1]
DOUN:INC SI
ADD AL , BIN[SI+1]
LOOP DOUN
MOV S, AL
POP AX
RET
SUM ENDP
;-----------------------------------------------------------
CODE ENDS
END BININ