📄 wlx3.asm
字号:
DATA SEGMENT
BUFFER1 DW 300,250,280,240,260
buffer2 db 4 dup(?)
MAX DW ?
MIN DW ?
AVE DW ?
MODE DB 4 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
STA DW 100 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
LEA SI,BUFFER1
MOV DI,0
MOV CX,4
MOV AX,[SI]
INC SI
INC SI
NEXT1: CMP AX,[SI]
JAE NEXT2
MOV AX,[SI]
NEXT2: INC SI
INC SI
LOOP NEXT1
MOV MAX,AX
LEA SI,BUFFER1
MOV CX,4
MOV AX,[SI]
INC SI
INC SI
NEXT11: CMP AX,[SI]
JBE NEXT12
MOV AX,[SI]
NEXT12: INC SI
INC SI
LOOP NEXT11
MOV MIN,AX
XOR AX,AX
MOV CX,5
LEA SI,BUFFER1
NEXT3: ADD AX,[SI]
INC SI
INC SI
LOOP NEXT3
SUB AX,MAX
SUB AX,MIN
XOR DX,DX
MOV CX,3
DIV CX
MOV AVE,AX
MOV AVE+2,DX
MOV CL,4
MOV BH,AH
MOV BL,AL
SHR AH,CL
MOV AL,AH
CALL CHANGE
AND BH,0FH
MOV AL,BH
CALL CHANGE
MOV AL,BL
SHR AL,CL
CALL CHANGE
AND BL,0FH
MOV AL,BL
CALL CHANGE
PUSH BX
PUSH DX
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV BX,AVE
MOV CX,16
XOR DX,DX
LOP3: SHL BX,1
ADC DL,'0'
MOV AH,2
INT 21H
XOR DX,DX
LOOP LOP3
POP DX
POP BX
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
XOR DI,DI
XOR DX,DX
MOV CX,10
MOV AX,AVE
LOP4: DIV CX
MOV MODE[DI],DL
CMP AX,0
JE DISPLAY
INC DI
XOR DX,DX
JMP LOP4
DISPLAY:MOV CX,3
DISPLAY1:
MOV AL,MODE[DI]
OR AL,30H
MOV DL,AL
MOV AH,2
INT 21H
DEC DI
LOOP DISPLAY1
MOV AX,4C00H
INT 21H
CHANGE PROC
CMP AL,10
JL LOP1
add al,07h
lop1: add al,30h
mov buffer2[DI],AL
MOV DL,BUFFER2[DI]
MOV AH,2
INT 21H
INC DI
RET
CHANGE ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -