IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> Повторяемость слова в тексте
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


Здравствуйте.

Задание такое:
Цитата
Составить программу повторяемости слов в тексте. Исходный текст в файле. Надо вывести кол-во повторений слова "see".
Использовать для текста:

See my eyes I can hardly see
See me stand I can hardly walk
I believe you can make me whole
See my tongue I can hardly talk
See my skin I'm a mass of blood
See my legs I can hardly stand
I believe you can make me well
See my purse I'm a poor poor man.


Написал вот такой код (ногами не пинать, асм последний раз 5 лет назад видел):
data segment
S_file db "Source.txt", 0
R_file db "Result.txt", 0
;--------------------------------------------------
Handle_S dw ?
Handle_R dw ?
;-------------------------------------------------
S_size dd 0

;-------------------------------------------------
point_FName2 dd R_file
point_fName dd S_file
point_string dd string
;-------------------------------------------------

string db 80 dup(" ")
str1 db 'Result'
l_string=$ - string
kol db 0
;------------------------------------------------

data ends

stck segment
db 200 dup(?)
stck ends

code segment
assume cs:code, ds:data, ss:stck

begin:

mov ax, data
mov ds,ax

;Open source.txt
mov ah,3dh
mov al,0
lea dx,s_file
int 21h
jc exit ;if failed
mov handle_s,ax ;save handle

;указатель первого файла на начало
mov ah,42h
mov bx,handle_s
xor cx,cx
xor dx,dx
mov al,0
int 21h

; ------------получаем размер--------------------
mov bx, ax
mov al, 2
xor cx, cx
xor dx, dx
mov ah, 42h
int 21h
jc exit

; size in dx:ax

;указатель первого файла на начало
mov ah,42h
mov bx,handle_s
xor cx,cx
xor dx,dx
mov al,0
int 21h
jc exit



;read
mov bx, handle_s
mov cx, l_string
lds dx, point_string
mov ah, 3fh
int 21h
jc exit

mov di, offset string
mov si, offset string
mov cx, l_string

cycl:
cmp byte ptr[si], 53h
jne no

inc di
cmp byte ptr[di], 'e'
jne no

inc di
cmp byte ptr[di], 'e'
jne no

inc di
cmp byte ptr[di], ' '
jne no

inc kol

no:
inc si
dec cx
cmp byte ptr[si], 0
je exit



text:
mov ah, 09h
mov dx, offset str1
int 21
mov ah, 10h
int 16h

exit:
mov ah,3eh
mov bx,handle_s
int 21h

int 20h


code ends
end begin


Проблема в том, что что-то пошло не так, и результат не выводится. Помогите, пожалуйста разобраться.

Сообщение отредактировано: Хорек -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 19:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name