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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2021, 10:42   #1
a-dimochka
Новичок
Джуниор
 
Регистрация: 12.11.2021
Сообщений: 1
Восклицание Поиск подстроки входящей в обратном порядке в строку

Используя цепочечные команды, реализовать программу выполняющую обработку
вводимых строк db (не более 250 символов):

Поиск подстроки входящей в обратном порядке в строку и вывод её позиции на консоль.

Я пытаюсь сделать это задание по следующему принципу: есть две строки: в первой нужно искать вторую, входящую в обратном порядке. Пока проблема возникает в том, что не получается искать вторую строку именно в обратном порядке. Я хотел сделать ещё дополнительно третью строку и в неё скопировать вторую строку в обратном порядке и потом уже работать с первой и третьей строкой. Но и в этом случае копируется строка не в обратном порядке, а в прямом.

Вопрос - как сделать так, чтобы вторая строка скопировалась в третью (изначально пустую) строку в обратном порядке (с использованием цепочных команд).
a-dimochka вне форума Ответить с цитированием
Старый 23.11.2021, 18:30   #2
Argogo
Пользователь
 
Регистрация: 28.03.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от a-dimochka Посмотреть сообщение
Вопрос - как сделать так, чтобы вторая строка скопировалась в третью (изначально пустую) строку в обратном порядке (с использованием цепочных команд).
Код:
    push ds
    pop es
    mov si, адрес_первого_байта_второй_строки
    mov di, адрес_последнего_байта_третьей_строки
    mov cx, длина_второй_строки
@@loop:
    cld
    lodsb
    std
    stosb
    loop @@loop
Как-то так, если ничего не перепутал.
Argogo вне форума Ответить с цитированием
Старый 02.01.2022, 13:38   #3
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
Счастье

Попробуи с записью в стек
Код:
 Ab1   db 25 dup(1)
Ab2   db 25 dup(?)
klen   db $-Ab1
.code
mov si, offset Ab1
mov di, offset Ab2
mov cx, klen
rep movs ss:b1, b1
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Старый 03.01.2022, 14:20   #4
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
По умолчанию

Код:
 Ab1   db 25 dup(1)
Ab2   db 25 dup(?)
Ab3 db 225 dup(1)
klen   db $-Ab1
.code
xor ax,ax
mov si, offset Ab1
mov ax, offset Ab2
mov di, offset Ab3
mov dx, 25 
l1: lodsb
inc si
mov cx, 225
repe scasb
mov [ax], cx
inc ax
dec dx
cmp dx, 0
jne l1
проверяем все. Все значения сх пишу в Ab2, и если они по порядку 1,2,3 то подстрока, и 225-Ab2[25] есть начало
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как записать число в строку в обратном порядке? Almagawar Помощь студентам 1 26.03.2016 22:42
Вывести строку в обратном порядке(ассемблер) untiy16 Помощь студентам 1 25.12.2013 08:49
вывести строку в обратном порядке - справа налево ( lazarus ) lililili Lazarus, Free Pascal, CodeTyphon 2 15.02.2013 10:30
Помогите вывести строку на экран в обратном порядке(TASM .small) depocomp Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 13 21.05.2009 11:22
заданную строку записать в обратном порядке Defa4ka Помощь студентам 1 13.05.2009 11:50