delphi程序代码是这样的 var
s: string;
i,n: integer;
begin
S:= 'Hello,world';
i:= addr(S);//取字符串地址
asm
mov eax,i //我不知道这句哪错了。我要的是把字符串的地址放到eax里
mov edx,[eax-4] //前一个地址读取字符串长度
mov n,edx //把长度保存到n中。执行这行会出错。应该是edx里的值是错误的。也就是说i保存的值也是不对的
end;
end;
还有就是我想 mov eax,S 这样取地址。不知道有什么好办法没。难道每次只能中转一次吗?S是字符串。帮下忙。谢谢
s: string;
i,n: integer;
begin
S:= 'Hello,world';
i:= addr(S);//取字符串地址
asm
mov eax,i //我不知道这句哪错了。我要的是把字符串的地址放到eax里
mov edx,[eax-4] //前一个地址读取字符串长度
mov n,edx //把长度保存到n中。执行这行会出错。应该是edx里的值是错误的。也就是说i保存的值也是不对的
end;
end;
还有就是我想 mov eax,S 这样取地址。不知道有什么好办法没。难道每次只能中转一次吗?S是字符串。帮下忙。谢谢
解决方案 »
- tms advstringgrid combobox AddComboStringObject问题
- 关于时间判断的问题。
- DLL中窗体停靠问题?大家帮忙!!!!
- 关于“通讯连接失败”提示的问题
- 大家好,请帮我看看这个函数,看毛病出在那里!(这是个很实用的函数,可能对大家有点用!)
- [error]Left sidecannot be assigned to
- vc6编的代码控件,在delphi下测试,其中的函数返回值运行结果不对,其他都正常。什么原因?
- Delphi编的程序占用系统资源为什么这么大?
- delphi 如何操作com 接口(有vbscript的示例)
- ADO 2.1哪儿有下载?或有更高版本?
- 关于Adoquery的问题,求解答!在线等答案
- delphi for循环输出。。结果不对。
mov eax,s
mov edx,[eax-4]
mov n,edx
end;
或者
i:=integer(@s);
asm
mov eax,i
mov eax,[eax]
mov edx,[eax-4]
mov n,edx
end;
str:pchar;
str:='啊啊啊';
asm
lea ebx,str
end;