| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1568 人关注过本帖
标题:有偿征求排序函数的Delphi内嵌汇编(basm)代码
只看楼主 加入收藏
杜鹃
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-21
收藏
 问题点数:0 回复次数:14 
有偿征求排序函数的Delphi内嵌汇编(basm)代码

有偿征求排序函数的Delphi内嵌汇编(basm)代码

{====================================================================
3数排序(冒泡排序)
=====================================================================}
function GetThreeSort(bsg:array of integer): string;
var
i, j, n: integer;
begin
for i:=2 downto 0 do begin
for j:= 0 to i-1 do begin
if bsg[j]>bsg[j+1]then begin
n:=bsg[j];
bsg[j]:=bsg[j+1];
bsg[j+1]:=n;
end;
end;
end;
result:=IntToStr(bsg[0])+IntToStr(bsg[1])+IntToStr(bsg[2]);
end;


本人愿为提供代码(须能在D7中编译通过并返回正确的值)的大侠支付酬劳50元。绝不食言。
代码请发到:du_juan1980@tom.com

[此贴子已经被作者于2007-6-24 9:08:03编辑过]

搜索更多相关主题的帖子: Delphi basm 函数 汇编 代码 
2007-06-23 19:01
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
function GetThreeSort(bsg:array of integer): string;
var
i, j, n: integer;
begin
for i:=2 downto 0 do begin
for j:= 0 to i-1 do begin
if bsg[j]>bsg[j+1]then begin
asm
mov eax, bsg[j]
xchg bsg[j+1], eax
mov bsg[j], eax
end;
end;
end;
end;
result:=IntToStr(bsg[0])+IntToStr(bsg[1])+IntToStr(bsg[2]);
end;
这算吗?呵呵

2007-06-23 20:51
杜鹃
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-21
收藏
得分:0 

嘻嘻!谢谢您!可能是我没写清楚。我要的是整个函数的汇编代码。不仅仅是交换这1句。谢谢,请把循环、比较的部分补充一下。请发到我的邮箱并附上收款帐号。

2007-06-24 08:38
杜鹃
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-21
收藏
得分:0 
我就是数组和循环这部分不会用汇编写。

[此贴子已经被作者于2007-6-24 8:51:50编辑过]


2007-06-24 08:43
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

function GetThreeSort(bsg:array of Integer): String;
var
i, j, n: Integer;
asm
push edi
push esi

mov ebx, -1
mov i, ebx
mov j, ebx
mov n, ebx
@loop1:
inc i
mov j, ebx
@loop2:
inc j
mov eax, bsg[j]
cmp eax, bsg[j+1]
jbe @loop2
mov eax, bsg[j]
xchg bsg[j+1], eax
mov bsg[j], eax
cmp j, 20
jbe @loop2
cmp i, 20
jbe @loop1
pop esi
pop edi
end;
没装DELPHI,不知道对不


2007-06-27 09:32
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
收藏
得分:0 
以下是引用菜鸟上路在2007-6-27 9:32:02的发言:

function GetThreeSort(bsg:array of Integer): String;
var
i, j, n: Integer;
asm
push edi
push esi

mov ebx, -1
mov i, ebx
mov j, ebx
mov n, ebx
@loop1:
inc i
mov j, ebx
@loop2:
inc j
mov eax, bsg[j]
cmp eax, bsg[j+1]
jbe @loop2
mov eax, bsg[j]
xchg bsg[j+1], eax
mov bsg[j], eax
cmp j, 20
jbe @loop2
cmp i, 20
jbe @loop1
pop esi
pop edi
end;
没装DELPHI,不知道对不

那么简单就有50块...


人生重要的不是所站的位置,而是所朝的方向
2007-06-27 13:47
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

我都不打算收钱


2007-06-27 14:33
herbert_1987
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:1314
专家分:0
注 册:2007-5-13
收藏
得分:0 
以下是引用菜鸟上路在2007-6-27 14:33:40的发言:

我都不打算收钱

^_^ 看得出, 否则你也不会把它发到论坛上了.


人生重要的不是所站的位置,而是所朝的方向
2007-06-27 14:35
杜鹃
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-21
收藏
得分:0 

谢谢。等了两天,都快失去希望了。

2007-06-27 23:00
杜鹃
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-21
收藏
得分:0 
function GetThreeSort(bsg:array of Integer): String;
var
i, j, n: Integer;
asm
push edi
push esi

mov ebx, -1
mov i, ebx
mov j, ebx
mov n, ebx
@loop1:
inc i
mov j, ebx
@loop2:
inc j
mov eax, bsg[j] // 在这报错:Access violation at address 0045210B in module
// 'Project1.exe'.Read of address 0025EC20
cmp eax, bsg[j+1]
jbe @loop2
mov eax, bsg[j]
xchg bsg[j+1], eax
mov bsg[j], eax
cmp j, 20
jbe @loop2
cmp i, 20
jbe @loop1
pop esi
pop edi
end;

咋回事呢?

[此贴子已经被作者于2007-6-27 23:37:52编辑过]

2007-06-27 23:18
快速回复:有偿征求排序函数的Delphi内嵌汇编(basm)代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040470 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved