Пожалуйста, помогите решить задачу!
Добавлено: 04 май 2016, 00:27
Задача заключается в следующем. Дана строка, найти слова начинающиеся на "a" и заканчивающиеся на "n". Я вот написал код, но, оно находит только слова которые заканчиваются на "n". Помогите решить!
.model small
.stack 200h
.data
msg db 'aiffern aolen gaset barr', 13, 10,'$'
len equ $-msg
msg2 db 16 dup(?)
.code
mov bx, @data
mov ds, bx
mov es, bx
cld
lea dx, msg
call Print
lea di, msg
lea si, msg2
mov cx, len
mov bx, 0
ms:
mov al, ' '
repne scasb
je ep
jmp mend
ep:
push cx
call Check
jne one
jmp two
one:call Change
two:
pop cx
mov bx, di
loop ms
mend:
call Check
jne one1
jmp two1
one1:call Change
two1:
mov dx, offset di
call Print
jmp endof
Check proc
cmp [di-2], 'n'
ret
endp
Change proc
push di
sub di, bx
mov cx, di
pop di
sub di, cx
rep movsb
ret
endp
Print proc
mov ah, 9
int 21h
ret
endp
endof:
end
.model small
.stack 200h
.data
msg db 'aiffern aolen gaset barr', 13, 10,'$'
len equ $-msg
msg2 db 16 dup(?)
.code
mov bx, @data
mov ds, bx
mov es, bx
cld
lea dx, msg
call Print
lea di, msg
lea si, msg2
mov cx, len
mov bx, 0
ms:
mov al, ' '
repne scasb
je ep
jmp mend
ep:
push cx
call Check
jne one
jmp two
one:call Change
two:
pop cx
mov bx, di
loop ms
mend:
call Check
jne one1
jmp two1
one1:call Change
two1:
mov dx, offset di
call Print
jmp endof
Check proc
cmp [di-2], 'n'
ret
endp
Change proc
push di
sub di, bx
mov cx, di
pop di
sub di, cx
rep movsb
ret
endp
Print proc
mov ah, 9
int 21h
ret
endp
endof:
end