统计最多频数.asm

来自「基于8086汇编程序」· 汇编 代码 · 共 116 行

ASM
116
字号
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 + =
减小字号Ctrl + -
显示快捷键?