Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2023, 19:07   #1
ChestIotVaga
Пользователь
 
Регистрация: 21.11.2022
Сообщений: 84
По умолчанию TASM для удаления слова в строке, стоящего перед заданным словом:

Помогите с кодом
Код:
.MODEL SMALL
.STACK 100h

.DATA
    ; Исходная строка
    input_string db 'The quick brown fox jumps over the lazy dog', 0
    ; Слово, которое нужно удалить
    word_to_delete db 'brown', 0

.CODE
    MAIN PROC
        MOV AX, @DATA
        MOV DS, AX

        ; Поиск позиции заданного слова в строке
        LEA SI, input_string
        MOV DI, 0
    FIND_WORD:
        LODSB
        CMP AL, 0
        JE WORD_NOT_FOUND
        CMP AL, ' '
        JE CHECK_WORD
        INC DI
        JMP FIND_WORD
    CHECK_WORD:
        LEA DX, word_to_delete
    COMPARE:
        LODSB
        CMP AL, 0
        JE DELETE_WORD
        CMP AL, ' '
        JE WORD_NOT_FOUND
        CMP AL, [SI - DI - 1]
        JNE FIND_WORD
        JMP COMPARE
    WORD_NOT_FOUND:
        ; Заданное слово не найдено
        ; Добавьте здесь код для обработки этой ситуации
        JMP EXIT
    DELETE_WORD:
        ; Удаление слова
        MOV CX, DI
        MOV SI, DI
        MOV DI, SI
        ADD DI, 1
        ADD SI, DX
        ADD DX, CX
    DELETE_LOOP:
        LODSB
        STOSB
        CMP AL, 0
        JE EXIT
        JMP DELETE_LOOP
    EXIT:
        MOV AH, 4Ch
        INT 21h
    MAIN ENDP
END MAIN
не понял как исправить не могли бы помочь исправить мне код очень срочно надо заранее благодарю.
ChestIotVaga вне форума Ответить с цитированием
Старый 09.04.2023, 19:36   #2
ChestIotVaga
Пользователь
 
Регистрация: 21.11.2022
Сообщений: 84
По умолчанию

Код:
.MODEL SMALL 
.STACK 100h 
 
.DATA 
    ; Исходная строка 
    input_string db 'The quick brown fox jumps over the lazy dog', 0 
    ; Слово, которое нужно удалить 
    word_to_delete db 'brown', 0 
 
.CODE 
    MAIN PROC 
        MOV AX, @DATA 
        MOV DS, AX 
 
        ; Поиск позиции заданного слова в строке 
        LEA SI, input_string 
        MOV DI, 0 
    FIND_WORD: 
        LODSB 
        CMP AL, 0 
        JE WORD_NOT_FOUND 
        CMP AL, ' ' 
        JE CHECK_WORD 
        INC DI 
        JMP FIND_WORD 
    CHECK_WORD: 
        MOV DX, OFFSET word_to_delete 
        MOV BX, DI
        SUB BX, SI 
        ADD BX, DX 
    COMPARE: 
        LODSB 
        CMP AL, 0 
        JE DELETE_WORD 
        CMP AL, ' ' 
        JE WORD_NOT_FOUND 
        CMP AL, [BX] 
        JNE FIND_WORD 
        ADD BX, 1 
        JMP COMPARE 
    WORD_NOT_FOUND: 
        ; Заданное слово не найдено 
        ; Добавьте здесь код для обработки этой ситуации 
        JMP EXIT 
    DELETE_WORD: 
        ; Удаление слова 
        MOV CX, DI 
        MOV SI, DI 
        MOV DI, SI 
        ADD DI, 1 
        ADD SI, DX 
        ADD DX, 1 
    DELETE_LOOP: 
        LODSB 
        STOSB 
        CMP AL, 0 
        JE EXIT 
        JMP DELETE_LOOP 
    EXIT: 
        MOV AH, 4Ch 
        INT 21h 
    MAIN ENDP 
END MAIN
исправил код ошибок нету но он нечего не выводит помогите
ChestIotVaga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с решение ошибок в коде нужно Удалить слово в строке, стоящее перед заданным словом. ChestIotVaga Помощь студентам 11 09.04.2023 23:15
Вставить заданное слово в строку перед заданным словом ChestIotVaga Помощь студентам 4 03.04.2023 02:12
Вставить в строке перед заданным словом другое заданное слово Mayrlly Помощь студентам 1 28.04.2020 13:54
Вставить заданное слово в строку перед заданным словом Blind Guard Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 07.04.2014 19:56
Вставить в строке перед заданным словом другое заданное слово. Axrik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 23.04.2013 02:42