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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2018, 19:36   #1
fen_x
Новичок
Джуниор
 
Регистрация: 15.12.2018
Сообщений: 2
По умолчанию TASM Программа, выполняющая поиск слова в строке

Пожалуйста помогите найти ошибки в коде. Должно вводиться слово, если этого слова нет в заданной строке, то должно выдавать ошибку, а если слово есть то, программа должна завершиться. Однако программа выдает ошибку независимо от того, какое слово мы ввели.
Код:
.model small
.stack 100h
.data

    string_word_request db 0dh,0ah,"Please, enter the word from string:", 0Dh, 0Ah, '$'
    warning_string db 0dh,0ah,"Invalid Input! Try again:", 0Dh, 0Ah, '$'
    string db 'cat', '$'       
    string_word db 254,256 dup (?)        

.code        
start:

    mov ax, @data
    mov ds, ax
    
    mov dx, offset string_word_request
    mov ah, 9
    int 21h     

    jmp q

string_word_warning:
    mov dx, offset warning_string
    mov ah, 9
    int 21h         
    
q: 
    mov ah, 0Ah
    mov dx, offset string_word
    int 21h    

    mov di, 2              ; string
    mov si, 2              ; string_word 


start_check:   
 
    cmp string[di],' '
    jne x
    inc di
    jmp start_check
        
x:   
    mov bl, string[di]         
    cmp string_word[si], bl
    jnz bad_symbol
     
good_symbol:
    
    inc di
    inc si
    cmp string_word[si],' '
    je final_check
    cmp string_word[si],0dh
    je final_check
    
    jmp x

bad_symbol:
    cmp string_word[si], 0dh
    je string_word_warning
    mov si, 2
a:
    inc di
    cmp string[di],' '
    je start_check
    cmp string[di], 0dh
    je string_word_warning
    jmp a
    
final_check:
         
    cmp string[di],' '
    je win
    cmp string[di], 0dh
    je win
    jmp string_word_warning

win:  
mov ax,4c00h   
int 21h   
end start
fen_x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM. Расположить слова в строке, введенной пользователем, по убыванию их длины. Букер Помощь студентам 2 20.04.2017 14:28
TASM. Сравнить слова в строке S1av0k Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.12.2011 10:14
Программа, выполняющая поиск отказов в выписках (в формате RTF) и формирующая реестр отказников в формате XLS (на делфи) avtoritetbikov@mai Фриланс 5 08.11.2011 00:20
Поиск слова в строке и редактирование этого слова Wasili4 Microsoft Office Excel 3 22.06.2011 21:06
TASM.Поиск имен регистров в введенной строке и вывод их содержимого adgam Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 18.04.2010 10:44