Найти частоту использования букв в тексте - Assembler
Формулировка задачи:
Доброго времени суток!
Нужна помощь с написанием программы. Её задача заключается в том, чтобы подсчитать частоту потребления букв в введённом тексте ASCII-формата.
Я примерно понимаю, что она должна делать(обработать текст, проверить каждый символ на букву, если буква, то увеличить счётчик, а по окончанию вывести его на кран), а вот как реализовать всю эту жуть на ассемблере - в этом и заключается весь траббль.
Решение задачи: «Найти частоту использования букв в тексте»
textual
Листинг программы
- ; fasm code.....
- org 100h ; делаем com-файл
- jmp start ;
- mes0 db 13,10,' Введите массив: $'
- mes1 db 13,10,' Букв в массиве: $'
- start: mov ah,9 ; запрос на ввод
- mov dx,mes0 ;
- int 21h ;
- xor cx,cx ; очищаем счётчик найденых
- mov ah,1 ; ввод с эхо средствами DOS
- save: int 21h ;
- cmp al,13 ; Enter - закончить ввод!
- je next ;
- cmp al,'A' ; пропустить, если меньше заглавной(А)
- jb digit ;
- cmp al,'z' ; пропустить, если больше прописной(z)
- ja digit ;
- inc cx ; остальные считаем (СХ+1)
- digit: jmp save ; сл.символ с клавы..
- next: push cx ; запомним счётчик в стеке
- mov ah,9 ; выводим сообщение
- mov dx,mes1 ;
- int 21h ;
- pop ax ; АХ = счётчик со-стека
- aam ; переводим его в распакованное/десятичное (BCD)
- add ax,3030h ; делаем из BCD, символы ASCII
- xchg ah,al ; меняем их местами
- int 29h ; выводим на экран первую цифру (разряд числа)
- xchg ah,al ;
- int 29h ; ..и следом вторую.
- exit: xor ax,ax ; ждём клавишу..
- int 16h ;
- int 20h ; на выход!
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д