Вот программа, которая выводит слово в обратном порядке. Об оперативной памяти может не понял, но по-моему оно и так туда сохраняется, по крайней мере во время работы программы:
Program Task;
Var s, r: String;
i: Integer;
Begin
WriteLn('Введите слово:');
ReadLn(s);
SetLength(r, Length(s));
For i := 1 To Length(s) Do
r[i] := s[Length(s) - i + 1];
WriteLn('Результат:');
WriteLn(r);
ReadLn;
End.