📄 得分系统.asm
字号:
DATA SEGMENT
MARK DB 7 DUP (0)
STRING1 DB 'Please inter 7 scores : ','$' ;开始提示语句
STRING2 DB 'result : ','$' ;结果提示语句
DATA ENDS
STACK1 SEGMENT PARA STACK
DB 20 DUP (0)
STACK1 ENDS
COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA,SS:STACK1
START:
MOV AX,DATA
MOV DS,AX
LEA DX,STRING1
MOV AH,09H
INT 21H
MOV CX,7
MOV SI,OFFSET MARK
LOP1:
MOV AH,01H
INT 21H
MOV BL,30H
SUB AL,BL ;输入的数变为ASCII码
MOV BL,AL
MOV AL,10
MUL BL
MOV DL,AL
MOV AH,01H
INT 21H
MOV BL,30H
SUB AL,BL
ADD AL,DL
MOV [SI],AL
INC SI
MOV DL,' '
MOV AH,02H
INT 21H
LOOP LOP1
PUSH DX
PUSH AX
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
POP AX
POP DX
PUSH DX
PUSH AX
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
POP AX
POP DX
LEA DX,STRING2
MOV AH,09H
INT 21H
MOV CX,6
MOV SI,OFFSET MARK
MOV BH,[SI]
MOV BL,[SI]
LOP2: INC SI
CMP BH,[SI]
JA EVENT1
MOV BH,[SI]
EVENT1: CMP BL,[SI]
JB EVENT2
MOV BL,[SI]
EVENT2: LOOP LOP2
MOV SI,OFFSET MARK
MOV CX,7
SUB AL,AL
LOP3: ADD AL,[SI] ;求7个数和
INC SI
LOOP LOP3
SUB AL,BH ;7个数的和减去最大数
SUB AL,BL ;7个数的和减去最小数
CBW
MOV BL,5
DIV BL ;和除以5
PUSH AX
CBW
MOV BL,10
DIV BL
MOV BH,AH
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,BH
ADD AH,30H
MOV DL,AH
MOV AH,02H
INT 21H
MOV DL,'.'
MOV AH,02H
INT 21H
POP AX
MOV AL,AH
MOV AH,2
MUL AH
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
COSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -