помогите исправить код по моей задумке он должен удалить слово в строке, стоящее перед заданным словом.
но у меня что то не получается написать без ошибок помогите исправить срочно
.model small
.stack 100h
.data
msg db 'This is a sample string', '$'
keyword db 'sample', '$'
.code
main proc
mov ax, @data
mov ds, ax
lea si, msg
lea di, msg
mov cx, 0
mov bx, 0
; находим позицию ключевого слова в строке
mov al, keyword[bx]
mov ah, 0
inc bx
mov cx, 0
; считаем количество символов в ключевом слове
while_loop:
cmp al, 0
je found
inc cx
mov al, keyword[bx]
inc bx
jmp while_loop
found:
dec cx
; ищем позицию слова, стоящего перед ключевым словом
find_word:
mov al, [si]
cmp al, 0
je finish
cmp al, ' '
jne next_char
; проверяем, является ли следующее слово ключевым
cmp_word:
mov bx, 0
mov dx, si
mov al, msg[si+1]
cmp al, keyword[bx]
jne next_char
inc bx
inc dx
cmp_loop:
cmp al, 0
je delete_word
mov al, keyword[bx]
inc bx
inc dx
cmp al, msg[dx]
jne next_char
jmp cmp_loop
delete_word:
; копируем строку на одно слово влево
mov cx, si
mov dx, si
inc dx
next_char:
mov al, [dx]
mov [cx], al
inc cx
inc dx
jmp find_word
finish:
mov [cx], '$'
; выводим измененную строку
lea dx, msg
mov ah, 09h
int 21h
mov ah, 4ch
int 21h
main endp
end main