Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для allens
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 40
TASM

Произвести поиск подстроки, если такой подстроки нет, то данную подстроку ввести в начало исходной строки

25.10.2011, 10:36. Показов 1374. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите, пожалуйста, в написании программы:
Ввести строку из произвольного числа символов и произвести в ней поиск подстроки COMPUTER. Если такой подстроки нет, то данную подстроку ввести в начало исходной строки и вывести на экран. В противном случае дать сообщение There is. Программу защитить паролем.
заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2011, 10:36
Ответы с готовыми решениями:

Удалить из строки S1 вторую подстроку S2. Если такой подстроки S2 не содержится в S1, то вывести S1 без изменений
Удалить из строки S1 вторую подстроку S2. Если такой подстроки S2 не содержится в S1, то вывести S1 без изменений. Короче, если нет...

Ввести с экрана строку и подстроку. Найти все вхождения подстроки в строку и удалить их из исходной строки
Ввести с экрана строку и подстроку. Найти все вхождения подстроки в строку и удалить их из исходной строки.

Поиск строки со значением первой подстроки и вывод значения её второй подстроки
Здравствуйте! Пытаюсь реализовать скрипт. Суть задумки скрипта сравнительно проста. На первом этапе считывается MAC адрес...

2
 Аватар для zzzyyyxxx
768 / 312 / 11
Регистрация: 27.05.2011
Сообщений: 703
25.10.2011, 19:38


прога по поиску слова:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
data segment
    string db 100, 100 dup ('$')
    len dw 0
    wrd db 'computer'
    lenw db $ - wrd
    mess_NO db 0ah, 'There is',0ah,'$'
    mess_YES db 0ah,'FOUND!!!$'
    new_string db 110 dup ('$')
data ends
 
code segment
assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    mov es,ax
    
    mov ah,0ah
    lea dx,string
    int 21h
    
    xor ax,ax
    mov al,byte ptr string[1]   ;получаем длину введённой строки
    mov len,ax
    
    lea si,wrd
    lea dx,string
    add dx,2                ;везде, где +2 = компенсация первых двух байтов (инфа о строке)
    add dx,len
    
    cld
    lea di,string
    add di,2
    mov cx,len
begin:
    mov al,byte ptr [si]
    repne scasb
    jne next    
            push di
            xor bx,bx
            inc si  
            inc bl
        yyy:
            inc bl
            inc si
            inc di          
            mov al,byte ptr [si]
            cmp al,byte ptr [di]
            je yyy
            
                cmp bl,lenw
                jne no
                    pop di
                    ;НАЙДЕНО
                    lea dx,mess_YES
                    mov ah,9
                    int 21h
                    jmp ext
                    
            no:
                cmp di,dx
                je next
                pop di
                lea si,wrd
                jmp begin
    
next:
    lea dx,mess_NO
    mov ah,9
    int 21h
    
;пишем слово
    lea si,wrd
    xor cx,cx
    mov cl,lenw
    lea di,new_string
    rep movsb
;пишем строку
    lea si,string
    add si,2
    mov cx,len
    lea di,new_string
    xor ax,ax
    mov al,lenw
    add di,ax
    rep movsb
    
;на экран
    mov ah,9
    lea dx,new_string
    int 21h
 
ext:
    mov ah,4ch
    int 21h
code ends
end start

распаковщик, программа выше уже внутри:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
data segment
    mess_pass db 'PASSWORD:   $'
    lenp dw 0
    pass db 10, 10 dup (0)
    string  db 54h, 043h, 08Ch, 018h, 01Bh, 019h, 018h, 019h, 039h, 019h, 019h, 019h, 0E6h, 0E6h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 009h, 019h, 027h, 019h, 019h, 019h, 018h, 019h, 0E2h, 068h
        db 73h, 06Bh, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 018h, 019h
        db 09h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 19h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 7Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 019h, 019h, 07Ah, 076h, 074h, 069h, 06Ch, 06Dh, 07Ch, 06Bh, 011h
        db 13h, 04Dh, 071h, 07Ch, 06Bh, 07Ch, 039h, 070h, 06Ah, 013h, 03Dh, 013h, 05Fh, 056h, 04Ch, 057h
        db 5Dh, 038h, 038h, 038h, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh, 03Dh
        db 3Dh, 03Dh, 03Dh, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h, 019h
        db 0A1h, 019h, 019h, 097h, 0C1h, 097h, 0D9h, 0ADh, 013h, 0A3h, 019h, 019h, 0D4h, 038h, 02Ah, 0D9h
        db 0B9h, 018h, 019h, 0BAh, 07Ch, 019h, 0A7h, 07Eh, 019h, 0A3h, 019h, 019h, 09Ah, 0DBh, 01Bh, 01Ah
        db 0Fh, 07Ch, 019h, 0E5h, 0A6h, 019h, 019h, 09Ah, 0DEh, 01Bh, 092h, 017h, 07Ch, 019h, 093h, 01Dh
        db 0EBh, 0B7h, 06Ch, 032h, 04Eh, 02Ah, 0C2h, 05Fh, 0E7h, 0DAh, 0E7h, 0DAh, 05Fh, 05Eh, 093h, 01Dh
        db 23h, 01Ch, 06Dh, 0EFh, 023h, 007h, 076h, 019h, 06Ch, 012h, 046h, 0A3h, 062h, 019h, 0ADh, 010h
        db 0D4h, 038h, 0F2h, 024h, 089h, 022h, 0E3h, 06Dh, 01Fh, 046h, 0A7h, 07Eh, 019h, 0F2h, 0D6h, 0A3h
        db 69h, 019h, 0ADh, 010h, 0D4h, 038h, 0A7h, 07Eh, 019h, 02Ah, 0D0h, 093h, 017h, 076h, 019h, 0A6h
        db 9Ch, 019h, 0EAh, 0BDh, 0A7h, 019h, 019h, 09Ah, 0DFh, 01Bh, 092h, 017h, 07Ch, 019h, 0A6h, 09Ch
        db 19h, 02Ah, 0D9h, 0B9h, 076h, 019h, 01Ah, 0E1h, 0EAh, 0BDh, 0ADh, 010h, 0A3h, 09Ch, 019h, 0D4h
        db 38h, 0ADh, 055h, 0D4h, 038h
    
    lens dw $ - string
    names db 'prog.exe',0
data ends
 
code segment
assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    
    mov ah,9
    lea dx,mess_pass
    int 21h
    
    mov ah,0ah
    lea dx,pass
    int 21h
    
    xor ax,ax
    mov al,byte ptr pass[1]
    mov lenp,ax
    
    lea si,pass
    add si,2
    mov cx,lenp
n1:
    push cx
    mov al,byte ptr [si]
    
    lea di,string
    mov cx,lens
    n2:
            xor byte ptr [di],al
            inc di
            loop n2
    inc si  
    pop cx
    loop n1
    
 
    mov ah,5bh
    xor cx,cx
    lea dx,names
    int 21h 
    
    mov bx,ax
    push bx
    mov ah,40h
    mov cx,lens
    lea dx,string
    int 21h
    
    pop bx
    mov ah,3eh
    int 21h
ext:
 
    mov ah,4ch
    int 21h
code ends
end start
защита очень простая. (кстати, пароль тебе известен, послед символов значения не имеет).
при вводе пароля распакуется - prog.exe - запусти, если не выдаст ошибок, то вводи строку и получишь результат.

в архиве исходники и программки.
Вложения
Тип файла: rar prog.rar (2.8 Кб, 13 просмотров)
2
 Аватар для zzzyyyxxx
768 / 312 / 11
Регистрация: 27.05.2011
Сообщений: 703
26.10.2011, 14:42
исправления:
программа поиска слова:
.исправлена ошибка при выводе сообщения "There is" (опять моя невнимательность)

программа кодирования:
.последние 2 символа пароля, не участвовали при кодировании.
.послед символов в пароле закреплена.


P.S.: Вот вроде и всё, пиши, если что не так.
Вложения
Тип файла: rar prog.rar (2.3 Кб, 14 просмотров)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2011, 14:42
Помогаю со студенческими работами здесь

Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку
Выполнить поиск подстроки внутри данной строки,замену найденной подстроки на другую строку Пример Исходная строка: aaaabbbaaa ...

Используя данную функцию, заменить в строке x все вхождения подстроки y в подстроку z
Описать логическую функцию поиск (s, ss, k, n), проверяющую, входит ли подстрока ss в ту часть строки s, которая начинается с k-й позиции,...

Разработать функцию, которая возвращает подстроку строки С с позиции N1 длиной N2. Если N2<0, то символы подстроки отсчи
Нужно разработать функцию, которая возвращает подстроку строки S с позиции N1 длиной N2. Если N2&lt;0, то символы подстроки отсчитываются...

Разработать функцию, которая возвращает подстроку строки S с позиции N1 длиной N2. Если N2<0, то символы подстроки отсчи
• Разработать функцию, которая возвращает подстроку строки S с позиции N1 длиной N2. Если N2&lt;0, то символы подстроки отсчитываются ...

Заменить все вхождения подстроки Str1 на подстроку Str2 (подстроки вводятся с клавиатуры)
Заменить все вхождения подстроки Str l на подстроку Str2 (подстроки вводятся с клавиатуры). program lab82; var s,str1,str2:string; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru