ЕГ
Евгения Горлова

Переворот строки на ассемблере.

Нужно сделать ассемблерную вставку в код С++ которая переворачивает строки.
Ассемблер изучал лет 5 назад, а тут девушка подсуетила ей лабу сделать. , а я последние 3 месяца из 1с не вылазил) ) Еле вспомнил как на с++ писать. На с++ или любом другом языке проблем с написанием не возникло бы а вот с ассемблером.. .
вот до чего дошел

void strOverturnAsm( char str1[], int lenS ) {

__asm{
mov eax, str1

str1 - это и есть та самая строка.

Татьяна Бужак
Татьяна Бужак

>>"Ассемблер изучал лет 5 назад"
хреново изучал значит.. .

__asm
{
push edi
push esi
mov edx,lenS
or edx,edx
jz _end
lea eax,str1
mov esi,eax
add eax,edx
dec eax
mov edi,eax

_next:
mov al,[esi]
mov ah,[edi]
mov [edi],al
mov [esi],ah
inc esi
dec edi

cmp edi,esi
jz _end
mov eax,edi
inc eax
cmp eax,esi
jz _end
jmp _next

_end:
pop esi
pop edi
}

НМ
Наталья Мариничева

Элементарно, Шорох
Один из алгоритмов может быть такой:
Например, считываешь ее с начального адреса, инкрементируя его,
и тут же записываешь его в другое место (например. в буфер) , уменьшая адрес на 1.
А затем перезаписываешь содержимое буфера на старое место 1 в 1.

АЦ
Александр Цёмкало

> девушка подсуетила ей лабу сделать

А тебе нет бы честно ей сказать что ты забыл да еще и не знал). .
Но ты же трус - а вдруг, мол, откажу ей, а она не даст)))

Похожие вопросы
Есть HelloWorld на Ассемблере (TASM). Объясните, пжл, смысл всех этих строк)
Ассемблер, вывод строки
C++. Переворот строк в матрице.
Ассемблер (MASM). Как изменить код программы, чтобы можно было вводить строку с клавиатуры?
Ассемблер. Что делает каждая строка в коде?
Ассемблер. Что делает каждая строка в коде?
кто нибудь может написать программу на ассемблере? Сравнить две ограниченные нулём строки
ассемблер, длина строки (код в описании)
какие надо прописывать две строки в бат файле на ассемблере
Ассемблер