[Assembler]вывести слова в кот-ых есть erv

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Mariaaa
Сообщения: 1
Зарегистрирован: 12 ноя 2007, 14:01

Есть программа которая создает файл и записывает туда строку. Потом открывает любой файл, считывает его и выводит и выводит всё его содержимое на экран. А мне нужно чтобы выводились на экран только те слова, вкоторых есть сочетание букв erv. Помогите доделать программу пожалуйста!
Вот прога:

Код: Выделить всё

ideal
model small
stack 256

dataseg
filename  db 40 dup(24h)
str1      db 80 dup(24h)
nl        db 10,13,24h
handle    dw 0
msg_file_create db '‚ўҐ¤ЁвҐ Ё¬п б®§¤ ў Ґ¬®Ј® д ©« :',10,13,24h
msg_file_open   db '‚ўҐ¤ЁвҐ Ё¬п ®вЄалў Ґ¬®Ј® д ©« :',10,13,24h
msg_str         db '‚ўҐ¤ЁвҐ бва®Єг:',10,13,24h
msg_er_create   db 'ЋиЁЎЄ  ЇаЁ б®§¤ *ЁЁ д ©« !',10,13,24h
msg_er_open     db 'ЋиЁЎЄ  ЇаЁ ®вЄалвЁЁ д ©« !',10,13,24h

codeseg
startupcode

; Ї®«гзҐ*ЁҐ Ё¬Ґ*Ё б®§¤ ў Ґ¬®Ј® д ©« 
mov ah,09h
lea dx,[msg_file_create]
int 21h
mov ah,0Ah
lea dx,[filename]
int 21h
mov ah,09h
lea dx,[nl]
int 21h

; ASCII -> ASCIIZ
xor ax,ax
mov al,[filename+1]
mov si,ax
mov [filename+2+si],0

; б®§¤ *ЁҐ д ©« 
xor cx,cx
mov ah,3Ch
lea dx,[filename+2]
int 21h

jnc next1

er_create:
mov ah,09h
lea dx,[msg_er_create]
int 21h
jmp exit

next1:
mov [handle],ax

; Ї®«гзҐ*ЁҐ бва®ЄЁ
mov ah,09h
lea dx,[msg_str]
int 21h
mov ah,0Ah
lea dx,[str1]
int 21h
mov ah,09h
lea dx,[nl]
int 21h

; § ЇЁбм бва®ЄЁ
xor cx,cx
mov cl,[str1+1]
mov bx,[handle]
lea dx,[str1+2]
mov ah,40h
int 21h

; § ЄалвЁҐ д ©« 
mov ah,3Eh
int 21h

; Ї®«гзҐ*ЁҐ Ё¬Ґ*Ё ®вЄалў Ґ¬®Ј® д ©« 
mov ah,09h
lea dx,[msg_file_open]
int 21h
mov ah,0Ah
lea dx,[filename]
int 21h
mov ah,09h
lea dx,[nl]
int 21h

; ASCII -> ASCIIZ
xor ax,ax
mov al,[filename+1]
mov si,ax
mov [filename+2+si],0

; ®вЄалвлҐ д ©« 
mov ah,3Dh
mov al,00b
;mov al,2
lea dx,[filename+2]
int 21h
jnc next2

er_open:
mov ah,09h
lea dx,[msg_er_open]
int 21h
jmp exit

next2:
mov [handle],ax
mov bx,ax

; звҐ*ЁҐ д ©« 
read:
mov ah,3Fh
mov cx,79
lea dx,[str1]
int 21h

mov di,ax
mov [str1+di],24h

; ўлў®¤ бзЁв **ле ¤ **ле
mov ah,09h
lea dx,[str1]
int 21h

cmp di,cx
jb close
jmp read

; § ЄалвЁҐ д ©« 
close:
mov bx,[handle]
mov ah,3Eh
int 21h

exit:
exitcode
end
Ответить