标题:[求助]DELPHI 内联asm 压入字符串问题?
只看楼主
xie139
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-14
 问题点数:0 回复次数:3 
[求助]DELPHI 内联asm 压入字符串问题?


DELPHI 内联asm 压入字符串新问题。

以前我没太注意,今天一个朋友问我DELPHI压入字符串,我随手给它编了一段代码:

var
Form1: TForm1;
dz01:string[100];
implementation


procedure acc;stdcall;
begin
dz01:= 'acc ';
asm
pushad
mov ebx,$754ea4
mov ecx,dword ptr ds:[ebx]
push offset dz01
mov ebx,$430FD0
call ebx
popad
end;
end;

下面是以上DELPHI代码反汇编结果
0044E7BC 60 pusha
0044E7BD BBA44E7500 mov ebx, $00754EA4
0044E7C2 3E8B0B mov ecx, ds:[ebx]
0044E7C5 682C044500 push $0045042C
0044E7CA BBD00F4300 mov ebx, $00430FD0
0044E7CF FFD3 call ebx
0044E7D1 61 popa
0044E7D2 C3 ret

而达不到ASM的偏移指针(压入字符串)的效果
DELPHI 效果:0044E7C5 682C044500 push $0045042C
要达到的效果:0044E7C5 682C044500 push offset dz01

DELPHI有不有办法达到这个效果??????
??

[此贴子已经被作者于2007-10-15 2:08:14编辑过]

搜索更多相关主题的帖子: 压入字符 DELPHI asm ebx end 
2007-10-15 02:07
xie139
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-14
得分:0 
挂了这么久,也没人回复,感觉这个问题比较严重吗?。。。。。。
2007-10-19 00:00
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
得分:0 
不熟悉汇编,但是offset dz01 得到的应该是个具体的偏移量,不可能编译后还是offset dz01的。
2007-10-22 20:07
xie139
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-14
得分:0 
0044E7C5 682C044500 push $0045042C
这个并不是指针到字符串,我需要的是
0044E7C5 682C044500 push offset $0048032f
$0048032f这个地址必须是指针指向字符串的,这样才叫成功压入字符串.

可是测试了好几次,总不是指向字符串的,压入字符串就不成功!

是不是我编写的这段代码错了,希望朋友们帮忙重新编写一段程序,谢谢!
2007-10-27 22:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-177672-1-1.html




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

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