Найти частоту использования букв в тексте - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Нужна помощь с написанием программы. Её задача заключается в том, чтобы подсчитать частоту потребления букв в введённом тексте ASCII-формата. Я примерно понимаю, что она должна делать(обработать текст, проверить каждый символ на букву, если буква, то увеличить счётчик, а по окончанию вывести его на кран), а вот как реализовать всю эту жуть на ассемблере - в этом и заключается весь траббль.

Решение задачи: «Найти частоту использования букв в тексте»

textual
Листинг программы
  1. ; fasm code.....
  2. org 100h                      ; делаем com-файл
  3. jmp start                     ;
  4.  
  5. mes0    db  13,10,' Введите массив: $'
  6. mes1    db  13,10,' Букв в массиве: $'
  7.  
  8. start:  mov   ah,9            ; запрос на ввод
  9.         mov   dx,mes0         ;
  10.         int   21h             ;
  11.         xor   cx,cx           ; очищаем счётчик найденых
  12.         mov   ah,1            ; ввод с эхо средствами DOS
  13. save:   int   21h             ;
  14.         cmp   al,13           ; Enter - закончить ввод!
  15.         je    next            ;
  16.         cmp   al,'A'          ; пропустить, если меньше заглавной(А)
  17.         jb    digit           ;
  18.         cmp   al,'z'          ; пропустить, если больше прописной(z)
  19.         ja    digit           ;
  20.         inc   cx              ; остальные считаем (СХ+1)
  21. digit:  jmp   save            ; сл.символ с клавы..
  22.  
  23. next:   push  cx              ; запомним счётчик в стеке
  24.         mov   ah,9            ; выводим сообщение
  25.         mov   dx,mes1         ;
  26.         int   21h             ;
  27.  
  28.         pop   ax              ; АХ = счётчик со-стека
  29.         aam                   ; переводим его в распакованное/десятичное (BCD)
  30.         add   ax,3030h        ; делаем из BCD, символы ASCII
  31.         xchg  ah,al           ; меняем их местами
  32.         int   29h             ; выводим на экран первую цифру (разряд числа)
  33.         xchg  ah,al           ;
  34.         int   29h             ;    ..и следом вторую.
  35.  
  36. exit:   xor   ax,ax           ; ждём клавишу..
  37.         int   16h             ;
  38.         int   20h             ; на выход!

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы