Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Assembler. Подсчет сколько раз каждое слово встречается в строке.

71K
27 мая 2011 года
Mrs.president
1 / / 27.05.2011
Необходимо ввести с клавиатуры строку, записать в файл, посчитать сколько раз каждое слово повторяется встроке, вывести и записать в файл результат в виде: слово 'слово 1' повторяется N раз.

На данном этапе вводится предложение, записывается в файл, считаются пробелы и каждое слово записывается в строку.

my_data segment
assume cs:my_data, ds:my_data
fname db 'A_11.txt', 0 ; ASCIIZ-имя файла
string db 50 dup('*');
slovo db 50 dup('*');
len = $-string ; длина строки
ermes db 'Error'
; Код
; Создадим файл
begin: mov ax,my_data
mov ds,ax
mov ah, 3Ch ; функция ’Создать файл’
lea dx, fname ; DS:DX -> ASCIIZ-имя
mov cx,0
xor cx, cx ; без атрибутов
int 21h
jc error ; если ошибка – на обработку

; буферизованный ввод строки
push ax
mov ah, 0Ah
lea dx, string
int 21h
;поиск пробелов
mov si,2
Find:
mov cx,len
mov di,si
M:
inc di;
cmp cx,di
je N
cmp string[di],32
je N
jmp M
mov si,0
N:

mov al, string[si];
mov slovo[si],al
inc si
cmp si,di
jne N
push di


mov ah,2
mov dl,10
INT 21H
dec di
dec di
;вывод строки
mov ah, 40h ; функция записи в файл или на устройство
lea dx, slovo ; DS:DX -> записываемая строка
mov cx,si
mov bx,1
int 21h
;нашли ли все пробелы
pop di
mov si,di
cmp si,len
je Rec
jmp Find
; Запишем в файл строку
Rec:
pop ax
xor cx,cx
add string[1],2;
mov bx, ax ; сохраним дескриптор созданного файла
mov ah, 40h ; функция записи в файл или на устройство
lea dx, string
mov cl,string[1]
mov string[1],' '
mov string[0], ' '
int 21h

; Закроем файл (в BX - дескриптор)
mov ah, 3Eh
int 21h
exit: mov ax, 4C00h
int 21h


; Обработка ошибки создания файла
error:
mov ah, 9
lea dx, ermes
int 21h ; вывод сообщения ermes
jmp exit

my_data ends

end begin
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог