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

Заменить заданное слово в строке на другое заданное слово

22.02.2023, 12:27. Показов 1199. Ответов 4
Метки tasm (Все метки)

Студворк — интернет-сервис помощи студентам
1. Выделить буфер для хранения 200 символов.
2. Строку символов ввести с клавиатуры, при этом ввод строки символов
может быть завершен клавишей Enter или по заполнению буфера полностью.

3. Дополнительный буфер для хранения промежуточных результатов об-
работки строки в памяти не выделять.

4. При использовании констант задавать их с помощью директивы EQU.
5. Старт программы, ввод-вывод данных и обработку ошибок оформлять
выводом в консоль поясняющих строк.

Заменить заданное слово в строке на другое заданное слово. как это сделать? можно код для примера?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2023, 12:27
Ответы с готовыми решениями:

Создать новую строку, в которой заданное слово будет заменено на другое заданное слово
Прошу помощи с заданием! Второй день никак не могу сделать. Создать новую строку, в которой заданное слово будет заменено на другое...

Вставить в строке перед заданным словом другое заданное слово
Здравствуйте!:rose: Мои поиски программы, которая сможет выполнить данную задачу: "Вставить в строке перед заданным словом другое...

Заданное слово повторить в строке заданное количество раз
задали по ассемблеру написать лабу.в командной строке задаются 2 параметра.1-слово,2-кол-во повторений нужно записать это слово,число...

4
Заблокирован
25.02.2023, 16:50  [ТС]
Подскажите как это сделать, может есть код как пример ?
0
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
26.02.2023, 15:39
Лучший ответ Сообщение было отмечено Arnight как решение

Решение

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
; Заменить заданное слово в строке на другое заданное слово
    .model small
    .code
maxsiz=24+1
EOT=13 ; признак конца текста
    org 100h
start:  jmp beg
; буфер ввода строки "поиск"
strfind db maxsiz
strfindL db 0
strfind2 db maxsiz dup (0)
; буфер ввода строки "замена"
strrepl db maxsiz
strreplL db 0
strrepl2 db maxsiz dup (0)
; буфер ввода строки "текст"
strtext db 255
strtextL db 0
strtext2 db 255 dup (0)
; буфер текста результата
outtext db 512 dup (0)
; длина строки поиска (слово)
sfindL dw 0
; длина строки замены (слово)
sreplL dw 0
; подказки
mfind db 13,10,"Find>$" ; поиск
mrepl db 13,10,"Repl>$" ; замена
mtext db 13,10,"Text>$" ; текст, в котором происходит замена
crlf    db 13,10,"$"    ; перевод строки
; макро - вывести строку
print macro txt
    mov dx,offset txt
    mov ah,9
    int 21h
    endm
; макро - читать строку
input macro buf
    mov dx,offset buf
    mov ah,10
    int 21h
    endm
; основная программа
beg:    mov ax,cs
    mov ds,ax
    mov es,ax
; ввод данных
    print mfind
    input strfind  ; ввод "поиск"
    cmp strfindL,0 ; если введена пустая строка, то выход в Дос
    jz exit
    mov al,strfindL
    mov ah,0
        mov sfindL,ax
    print mrepl
    input strrepl ; ввод "замена"
    cmp strreplL,0
    jz exit
    mov al,strreplL
    mov ah,0
    mov sreplL,ax
    print mtext
    input strtext ; ввод "текст"
    cmp strtextL,0
    jz exit
    cld
    mov si,offset strtext2 ; si=исходный текст
    mov di,offset outtext  ; di=текст результата
m0: lodsb
    stosb
    cmp al,EOT  ; это конец текста ?
    jz outprint ; да, переход к печати результата
    call find   ; найти слово 
    jnz m0      ; слово не найдено - конец цикла
    call replace ; слово найдено - сделать замену
    jmp m0       ; конец цикла
; вывод результата
outprint: print crlf
    mov si,offset outtext   ; si=текст результата
m1: lodsb        ; считать символ
    cmp al,EOT   ; если конец текста, то выход
    jz exit
    mov dl,al    ; печатать символ
    mov ah,2
    int 21h
    jmp m1       ; конец цикла
exit:   mov ax,4C00h ; выход в Дос
    int 21h
 
find:   push si  ; поиск слова
    push di
    mov cx,sfindL ; сдвинуть указатель текста на длину искомого слова
    sub si,cx
    cmp si,offset strtext2 ; указатель меньше адреса начала текста ?
    jc  return_no ; да, возвратить "не найдено"
    mov di,offset strfind2 ; нет, сравнить со словом поиска
    repe cmpsb
    pop di
    pop si
    ret         ; возвращается флаг Z, если слово найдено
return_no:          ; возвращается флаг NZ - "слово не найдено"
    mov dl,1
    or dl,dl
    pop di
    pop si
    ret
 
replace:push si ; замена слова
    sub di,sfindL ; стираем исходное слово в выходном тексте
    mov cx,sreplL ; заменяем на новое слово (при этом DI продвигается по тексту)
    mov si,offset strrepl2
    rep movsb
    pop si
    ret
    end start
0
Заблокирован
26.02.2023, 19:41  [ТС]
а скажите как она вообще реализуется тобишь я вписал значения и не понял результата может надо какие то значения вписывать чтоб это было видно
0
Модератор
1245 / 676 / 292
Регистрация: 10.11.2019
Сообщений: 1,406
27.02.2023, 10:44
Например:
Find>1
Repl>One
Text>1 2 3 1 2 3
или так:
Find>m
Repl>M
Text>mama
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2023, 10:44
Помогаю со студенческими работами здесь

Заменить в строке заданное слово (подстроку) другой заданой подстрокой
Помогите резить задачу: дана страка, заменить в стоке заданное слово(подстроку) заданой подстракой (не одинакавой длины) подскажите...

В исходной строке в словах,начинающихся с заданной буквы,заменить слово символом '$' заданное колличество раз.
1)Задана строка слов.Слово - последовательность символов,разделенных пробелом.В исходной строке в словах,начинающихся с заданной...

Вставить во всех строках текста после заданным словом другое заданное слово
Доброго времени суток. Подскажите, пожалуйста, как изменить код для вставки текста ПОСЛЕ заданным словом другое заданное слово. На данный...

Удалить заданное слово в строке
Программа удаляет слово в строке после заданного, как изменить, чтобы удалялось только ЗАДАННОЕ СЛОВО ?.model small .data ...

Удалить заданное слово в строке
Здравствуйте. Помогите с заданием: удалить заданное слово в строке.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru