Задание такое:
Цитата
Составить программу повторяемости слов в тексте. Исходный текст в файле. Надо вывести кол-во повторений слова "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.
Использовать для текста:
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
Проблема в том, что что-то пошло не так, и результат не выводится. Помогите, пожалуйста разобраться.