| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 330 人关注过本帖
标题:[讨论]Delphi中内嵌ASM
收藏  订阅  推荐  打印 
zshoucheng
Rank: 1
等级:新手上路
帖子:19
积分:290
注册:2007-3-11
[讨论]Delphi中内嵌ASM

Delphi中内嵌ASM:
procedure sh(ss:string);
begin
showmessage(ss);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := 'hello!';
asm
lea edx,s
call sh
end;
end;

上面有什么问题>?

搜索更多相关主题的帖子: ASM  Delphi中  procedure  string  scall  
2007-4-29 21:47
anthony634
Rank: 12Rank: 12Rank: 12
来自:西南交大
等级:版主
威望:20
帖子:623
积分:6774
注册:2006-6-8

procedure sh(ss:string); stdcall;//这里要记得delphi默认是register调用,而不是stecall
begin
showmessage(ss);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := 'hello!';
asm
push s {string的首地址是不能访问的,所以lea取它的首地址再跳转的时候会出错,我感觉应该是这样的}
call sh
end;
end;


承接网络推广,网文发布
http://www.zhouxingwei.cn/Index.html
2007-4-30 10:26
anthony634
Rank: 12Rank: 12Rank: 12
来自:西南交大
等级:版主
威望:20
帖子:623
积分:6774
注册:2006-6-8

另外附上一点建议,在混合编程的时候尽量别用string,用PCHAR,

承接网络推广,网文发布
http://www.zhouxingwei.cn/Index.html
2007-4-30 10:39
zshoucheng
Rank: 1
等级:新手上路
帖子:19
积分:290
注册:2007-3-11

我要的就是寄存器的方式
调用API才用stdcall

2007-5-1 10:35
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.063685 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved