2015-12-26 4 views

ответ

0

В зависимости от языка, который вы поддерживаете (читайте: не все языки, которые используют «A» для «E», имеют одинаковое количество символов), создайте массив неподписанных значений (тип данных также зависит от самый длинный правдоподобный размер массива), затем перечисляйте с начала данного алфавита до конца, подсчитывая открытия и увеличивая назначенную запись массива.
Для полноты информации: Вы не вышли, если подсчет дела (прочитайте: «a», чтобы считаться «A») ... если они должны учитываться отдельно, вам необходимо сохранить подходящее хранилище для различных случаев. После того, как алфавит был перечислен, просто перейдите от начала массива до конца, сбросив открытия. Это не самое элегантное решение ... но соответствует заданным параметрам.

1

Напишите процедуру, которая пересекает всю строку в поисках определенного символа. Для каждого совпадения приращение счетчика. По возвращении отображает результат как символ DL происходит DH раз:
например. «A - 2».

mov dl, "A" 
call CountChar 
... print result ... 
mov dl, "B" 
call CountChar 
... print result ... 


CountChar: 
    mov dh, 0 
    mov cx, ... length of the input string ... 
    jcxz Ready 
    mov bx, ... address of the input string ... 
Again: 
    cmp [bx], dl 
    jne Skip 
    inc dh 
Skip: 
    inc bx 
    loop Again 
Ready: 
    ret 
Смежные вопросы