помогите хотел сделать вставку слова перед заданным словом но почему то выводит только Hello World А хотел Hello Beautiful World помогите с кодом в идеале дайте исправленый код
.MODEL SMALL
.STACK 100h
.DATA
TARGET_STRING DB 'Hello World', '$'
TARGET_WORD DB 'World', '$'
INSERT_WORD DB 'Beautiful ', '$'
.CODE
START:
MOV AX, @DATA
MOV DS, AX
; Найдем место в строке, где нужно вставить слово
LEA SI, TARGET_STRING
MOV BX, 0
FIND_WORD:
LODSB
CMP AL, 0
JE NOT_FOUND
CMP AL, TARGET_WORD[BX]
JNE NOT_MATCH
INC BX
CMP TARGET_WORD[BX], 0
JE FOUND
JMP FIND_WORD
NOT_MATCH:
MOV BX, 0
JMP FIND_WORD
NOT_FOUND:
; Слово не найдено
JMP DONE
FOUND:
; Место в строке найдено, сделаем место для нового слова
PUSH SI
MOV CX, 0
LEA DI, TARGET_STRING
ADD DI, BX
MOV AH, 0
LODSB
MAKE_SPACE:
STOSB
INC CX
CMP AL, 0
JE AFTER_MAKE_SPACE
JMP MAKE_SPACE
AFTER_MAKE_SPACE:
; Вставим новое слово
POP SI
LEA DI, INSERT_WORD
LODSB
MOV AH, 0
INSERT_WORD_LOOP:
STOSB
CMP AL, 0
JE DONE
LODSB
JMP INSERT_WORD_LOOP
DONE:
; Выведем измененную строку на экран
LEA DX, TARGET_STRING
MOV AH, 9
INT 21H
; Завершение программы
MOV AH, 4CH
INT 21H
END START