подсчитать количество символов

BackTrace

Случайный прохожий
Доброго времени суток!
Нужна помощь с написанием ргз по машинно-ориентированному программированию, нужно написать программу на assembler, программа должна подсчитывать частоту потребления букв в введённом тексте ASCII-формата. В принципе алгоритм понятен и прост - нужно обработать текст, проверить каждый символ на букву, если буква, то увеличить счётчик, а по окончанию вывести его на кран, но вот как реализовать всю эту жуть на ассемблере - в этом и заключается проблема. Заранее благодарю за помощь! Спасибо.
 
Доброго времени суток!
Нужна помощь с написанием ргз по машинно-ориентированному программированию, нужно написать программу на assembler, программа должна подсчитывать частоту потребления букв в введённом тексте ASCII-формата. В принципе алгоритм понятен и прост - нужно обработать текст, проверить каждый символ на букву, если буква, то увеличить счётчик, а по окончанию вывести его на кран, но вот как реализовать всю эту жуть на ассемблере - в этом и заключается проблема. Заранее благодарю за помощь! Спасибо.

Код:
; fasm
org 100h                      ;
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            ;
save:   int   21h             ;
        cmp   al,13           ;
        je    next            ;
        cmp   al,'A'          ;
        jb    digit           ;
        cmp   al,'z'          ;
        ja    digit           ;
        inc   cx              ;
digit:  jmp   save            ;

next:   push  cx              ;
        mov   ah,9            ;
        mov   dx,mes1         ;
        int   21h             ;

        pop   ax              ;
        aam                   ;
        add   ax,3030h        ;
        xchg  ah,al           ;
        int   29h             ;
        xchg  ah,al           ;
        int   29h             ;  

exit:   xor   ax,ax           ;
        int   16h             ;
        int   20h             ;
 
Назад
Верх