📄 统计最多频数.asm
字号:
CODE SEGMENT
ASSUME CS:CODE
BEGIN: PUSH CS
POP DS
PUSH CS
POP ES
MOV DI,2000H
CLD
MOV AL,-12
STOSB
MOV AL,12
STOSB
MOV AL,25
STOSB
MOV AL,9
STOSB
MOV AL,-1
STOSB
MOV AL,3
STOSB
MOV AL,8
STOSB
MOV AL,98
STOSB
MOV AL,18
STOSB
MOV AL,20
STOSB
MOV AL,-30
STOSB
MOV AL,-5
STOSB
MOV AL,-7
STOSB
MOV AL,45
STOSB
MOV AL,3
STOSB
MOV AL,5
STOSB
MOV AL,11
STOSB
MOV AL,37
STOSB
MOV AL,-38
STOSB
MOV AL,-12
STOSB
MOV SI,2000H
MOV AX,0
MOV BX,0
MOV CX,0
MOV DX,0
DONE0: LODSB
CMP AL,0
JNZ DONE1
INC BL
INC BH
LOOP DONE0
DONE1: LOOP DONE0
;==========================统计0的个数
MOV SI,2000H
MOV CX,20
DONE2: LODSB
PUSH SI
INC DL
CMP AL,0
JZ DONE9
INC AH
PUSH CX
DEC CX
DONE3: CMP AL,[SI]
JNZ DONE4
MOV BYTE PTR[SI],0
INC AH
DONE4: INC SI
LOOP DONE3
;===========================统计相同数的个数
CMP AH,BH
JZ DONE8 ;======相同,不做任何事
CMP AH,BH
JA DONE5 ;AH>=BH,清除此次以前的所有数
MOV SI,DX
ADD SI,1FFFH
MOV BYTE PTR[SI],0
JMP DONE8 ;=======小于,此数的数清0
;=========================================
DONE5: CMP DL,1
JZ DONE7
MOV CL,DL
MOV SI,2000H
DEC CX
DONE6: MOV WORD PTR[SI],0
INC SI
LOOP DONE6
;==============================清前面的数
DONE7: XCHG AH,BH
MOV AH,0
POP CX
POP SI
LOOP DONE2
DONE8: POP CX
POP SI
MOV AH,0
LOOP DONE2
DONE9: POP SI
MOV AH,0
LOOP DONE2
CODE ENDS
END BEGIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -