Пожалуйста, помогите решить задачу!

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Нурдаулет
Сообщения: 1
Зарегистрирован: 04 май 2016, 00:20

Пожалуйста, помогите решить задачу!

Сообщение Нурдаулет » 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

Ответить