Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Как перевернуть строку


Автор: Асоишница 7.10.2014, 23:01
Вообще надо вот чего:
Циклически  сдвинуть  текст  на K (константа)  позиций  влево  без  использования 
дополнительной памяти, реализовав следующий алгоритм: перевернуть подмассив из первых 
K символов; перевернуть оставшийся подмассив; перевернуть весь текст.  
Ну то есть имеем 12345 -> 21345 ->21543 ->34512(k=2)

Пытаюсь пока перевернуть всю строку(кусок ассемблерной вставки в с++):

Код

//переворот всей строки
                    mov esi, str//сама строка
                    mov edi, str2//буфер
                    mov ecx, len//длина строки
                    add edi, ecx
                    dec edi
                l3 :
                mov al, [esi]
                    mov[edi], al
                    inc esi
                    dec edi
                    loop l3

выдаёт мне мою же строку :-(

Автор: Асоишница 8.10.2014, 00:38
Помог резиновый утёнок. Проблема была в другом месте smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)