80x86 汇编语言编程:输入字符串,排序输出

来源:互联网 发布:python 多行命令 编辑:程序博客网 时间:2024/05/22 00:26

要求:键盘输入一个长度不小于20个字符的字符串,统计其中每个字符出现的次数,以出现频率从高到低对所包含字符排序输出。


说明:如键盘输入字符串是:“HELLO!”,其中 H 出现1次、E 出现1次、L 出现2次、O出现1次。


输出就是:LHEO,次数出现一样的随机排列即可。


做而论道编写的程序如下:


ASSUME  CS:C, DS:D

;----------------------------------

D  SEGMENT

    MSG   DB  'Please input: ', 13, 10, 36

    XXX   DB  96 DUP(0)

    III   DB  121, ?, 121 DUP(?) ;可输入120个字符

D  ENDS

;----------------------------------

C  SEGMENT

BEG:

    MOV   AX, D

    MOV   DS, AX


    LEA   DX, MSG

    MOV   AH, 9

    INT   21H

    LEA   DX, III

    MOV   AH, 10      ;输入字符串

    INT   21H

    CMP   III + 1, 0

    JZ    EXIT


    MOV   DL, 13

    MOV   AH, 2

    INT   21H

    MOV   DL, 10

    INT   21H


    MOV   CL, III + 1

    MOV   CH, 0

    MOV   SI, 0

LP1:

    MOV   BL, III[SI + 2]

    SUB   BL, 32

    MOV   BH, 0

    INC   BYTE PTR XXX[BX]

    INC   SI

    LOOP  LP1

;------------------------------

    MOV   BL, III + 1

LP3:

    MOV   SI, 0

LP2:

    CMP   BL, XXX[SI]

    JNZ   NEXT

    MOV   DX, SI

    ADD   DL, 32

    MOV   AH, 2

    INT   21H

NEXT:

    INC   SI

    CMP   SI, 96

    JB    LP2

    SUB   BL, 1

    JNZ   LP3

EXIT:

    MOV   AH, 4CH

    INT   21H

;------------------------------

C  ENDS

    END  BEG


这就可以了。


2013-11-12 00:28


提问者评价:谢谢


题目链接:http://zhidao.baidu.com/question/1701788515770030220.html


0 0