读书人

汇编实现 一个处理字符串的功能,该如何

发布时间: 2012-02-29 16:44:11 作者: rapoo

汇编实现 一个处理字符串的功能
一共两个功能。用现在的代码速度太慢了,请大侠帮忙用汇编实现一下,不甚感激。

=======================================================
第一个:
var
ss : String;
tLen : integer;
begin
ss := 'ab123cd';
tLen := length(ss);
if (tLen > 1) then begin
ss := copy(ss,tLen,1) + copy(ss,1,(tLen - 1));
end;
end;

运行结果是: dab123c
=======================================================

第二个:
var
ss : String;
tLen : integer;
begin
ss := 'ab123cd';
tLen := length(ss);
if (tLen > 1) then begin
ss := copy(ss,2,tLen) + copy(ss,1,1);
end;
end;

运行结果是: b123cda
========================================================



[解决办法]
关注一下
帮你顶顶先

[解决办法]

Delphi(Pascal) code
汇编实现肯定快,不过move内部实现也应该是汇编的了试一试,看看速度如何:procedure moveleft(var s:string);var  c:char;  l:integer;begin  l:=length(s);  c:=s[1];  move(s[2],s[1],l-1);  s[l]:=c;end;procedure moveright(var s:string);var  c:char;  l:integer;begin  l:=length(s);  c:=s[l];  move(s[1],s[2],l-1);  s[1]:=c;end;
[解决办法]
哈。。学习学习
[解决办法]
赐教不敢当,不过4L的代码就很说明问题,字符串的时间通常是被浪费在"+",copy,replace等字符串函数的操作上,要知道这些操作都是在不断地生成新的字符串,想节约时间,申请一块内存,然后去操作他,move就是这么简单
[解决办法]
学习了, 内存 move 比使用字符串函数要快这么多.
[解决办法]
楼主,如果你想一味地追求速度,
请教别人的精力,还不如直接学习一下汇编就行了, 有了汇编基础,
移动字符串应该比较容易.

读书人网 >.NET

热点推荐