主题:调用子程序
如题。一个支持任意数目参数的stdcall调用子程序
#leave = {201}
#call_code = { 88, 135, 4, 36, 255, 224 }
.子程序 __启动窗口_创建完毕
call_1 (&子程序1, 1)
.子程序 子程序1
.参数 a
调试输出 (a)
.子程序 call_0, 整数型
.参数 proc, 子程序指针
.子程序 call_1
.参数 proc, 子程序指针
.参数 a
置入代码 (#leave )
置入代码 (#call_code)
.子程序 call_2
.参数 proc, 子程序指针
.参数 a
.参数 b
置入代码 (#leave )
置入代码 (#call_code)
.子程序 call_3
.参数 proc, 子程序指针
.参数 a
.参数 b
.参数 c
置入代码 (#leave )
置入代码 (#call_code)
///////////////
/////
copy...
置入代码 ({ 201, 88, 135, 4, 36, 255, 224 })
转自易友
再往下的可以支持理论上无数个的参数(实际被系统堆栈大小限制了)...
只需要在后面加上[参数]成员就够了。。。
#call_code 仅3句。有兴趣的可以看看。要支持thiscall也很简单。
注意。。由于没有了ebp保护,所以注意一定要[被调用的子程序]参数数量与声名的参数数量一样,否则会产生异常(如在循环内就出现了问题)...像易的调用子程序若参数数量不对齐的话直接崩溃。。。汗
置入代码 (#leave)
置入代码 (#call_code)
返回 (0)
#leave = {201}
#call_code = { 88, 135, 4, 36, 255, 224 }
.子程序 __启动窗口_创建完毕
call_1 (&子程序1, 1)
.子程序 子程序1
.参数 a
调试输出 (a)
.子程序 call_0, 整数型
.参数 proc, 子程序指针
.子程序 call_1
.参数 proc, 子程序指针
.参数 a
置入代码 (#leave )
置入代码 (#call_code)
.子程序 call_2
.参数 proc, 子程序指针
.参数 a
.参数 b
置入代码 (#leave )
置入代码 (#call_code)
.子程序 call_3
.参数 proc, 子程序指针
.参数 a
.参数 b
.参数 c
置入代码 (#leave )
置入代码 (#call_code)
///////////////
/////
copy...
置入代码 ({ 201, 88, 135, 4, 36, 255, 224 })
转自易友
再往下的可以支持理论上无数个的参数(实际被系统堆栈大小限制了)...
只需要在后面加上[参数]成员就够了。。。
#call_code 仅3句。有兴趣的可以看看。要支持thiscall也很简单。
注意。。由于没有了ebp保护,所以注意一定要[被调用的子程序]参数数量与声名的参数数量一样,否则会产生异常(如在循环内就出现了问题)...像易的调用子程序若参数数量不对齐的话直接崩溃。。。汗
置入代码 (#leave)
置入代码 (#call_code)
返回 (0)