请问下面嵌入汇编函数的返回值? 请问下面嵌入汇编的函数返回值,是EAX吗?function Start:DWORD;stdcall;asm CALL @@1 @@1: POP EAX SUB EAX, 5end;//转为C嵌入汇编如下,对不对?DWORD __stdcall Start(){ DWORD rs; asm{ CALL @@1 @@1: POP EAX SUB EAX, 5 MOV rs, EAX } return rs; } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.返回call指令地址到eax2.功能来说是一样的,不过好象vc没有这种标号写法...记不清了,如果能编译,算我没说. 加注释的部分可以不要,有个无返回值警告可以不理DWORD __stdcall Start(){// DWORD rs; asm{ CALL @@1 @@1: POP EAX SUB EAX, 5// MOV rs, EAX }// return rs; } 这样的问题试一下就知道了,,,procedure TForm1.Button1Click(Sender: TObject);var i,j:dword;begin i:=0; i:=Start; j:=i+7; showmessage(inttostr(j));end;在i:=start前面加一个断点,的CPUview中看到的是lea ebx,[eax+$07]说明Start返回值在EAX中 Syant J. Wang 哈哈~是获取EIP的~最常见的Shell,Patch和Virus技术手段 多谢各位, 本人Pascal比较菜,见到有函数好像不返回,就有些疑惑,呵呵! 其实那个局部变量可以不要吧,因为反正最后也是mov eax,[rs]&retn。但没有实际编译过,不清楚能不能编译通过。另外,C++就不支持@@标志。好像也不支持标记在使用之后声明的写法。 to pig4210: 在Cbuilder下是可以的。 http://topic.csdn.net/u/20071123/12/ddefb0fa-ffc7-40da-a73c-7b4443b6debc.html ADO访问Access数据库的问题 delphi中声音的处理~ 删除listview多余的列和行. 打开再说吧 有人跨表使用过update吗, ●●做过网络应用程序的高手请进(回贴就有分啦) 谁用过TeamSource集成开发,有相关资料吗?高分求取!!! 这句SQL查询语句怎么错了呢? 关于线程的难题,150分啊! ADO连接ACCESS数据库 怎么发布(做安装盘) 求ActiveX,供javaScript调用? 这个,怎么做啊? MYSQL连接[密码安全性问题]
2.功能来说是一样的,不过好象vc没有这种标号写法...记不清了,如果能编译,算我没说.
{
// DWORD rs;
asm{
CALL @@1
@@1:
POP EAX
SUB EAX, 5
// MOV rs, EAX
}// return rs;
}
这样的问题试一下就知道了,,,procedure TForm1.Button1Click(Sender: TObject);
var
i,j:dword;
begin
i:=0;
i:=Start;
j:=i+7;
showmessage(inttostr(j));
end;在i:=start前面加一个断点,的CPUview中看到的是lea ebx,[eax+$07]说明Start返回值在EAX中
Syant J. Wang
多谢各位, 本人Pascal比较菜,见到有函数好像不返回,就有些疑惑,呵呵!
另外,C++就不支持@@标志。好像也不支持标记在使用之后声明的写法。
to pig4210: 在Cbuilder下是可以的。 http://topic.csdn.net/u/20071123/12/ddefb0fa-ffc7-40da-a73c-7b4443b6debc.html