您的足迹:首页 > 经验技术 >易语言 汇编动态调用函数 自动平栈

易语言 汇编动态调用函数 自动平栈

当做备忘吧,希望能帮到大家,支持cdecl和stdcall调用,自动平栈。


.版本 2

.子程序 汇编动态调用函数, 整数型, 公开
.参数 地址, 整数型, , 可以为_CDECL和_stdcall
.参数 缓存区1, 整数型, 参考 可空, 一定要为参考,无需输入,为缓冲区(用来备份堆栈,以方便平衡栈)
.参数 缓存区或返回值, 整数型, 参考 可空, 一定要为参考,无需输入,为缓冲区(用来备份EAX,以方便返回内容,如果在此处填写变量地址则改变量会变为调用子程序的返回值)
.参数 参数1, 整数型, 可空
.参数 参数2, 整数型, 可空
.参数 参数3, 整数型, 可空
.参数 参数4, 整数型, 可空
.参数 参数5, 整数型, 可空
.参数 参数6, 整数型, 可空
.参数 参数7, 整数型, 可空
.参数 参数8, 整数型, 可空
.参数 参数9, 整数型, 可空
.参数 参数10, 整数型, 可空
.参数 参数11, 整数型, 可空
.参数 参数12, 整数型, 可空
.参数 参数13, 整数型, 可空
.参数 参数14, 整数型, 可空
.参数 参数15, 整数型, 可空

置入代码 ({ 137, 101, 248, 86, 81, 51, 201, 81, 198, 193, 15, 139, 245, 129, 198, 152, 0, 0, 0, 131, 238, 8, 139, 198, 139, 0, 133, 192, 116, 8, 139, 70, 252, 80, 131, 69, 244, 4, 226, 235, 199, 192, 0, 0, 0, 0, 255, 85, 8, 139, 216, 139, 141, 20, 0, 0, 0, 137, 1, 139, 195, 41, 165, 248, 255, 255, 255, 3, 165, 248, 255, 255, 255, 201, 195 })
' mov dword ptr [ebp-08h],esp
' push esi
' push ecx
' xor ecx,ecx
' push ecx
' mov cl,0Fh
' mov esi,ebp
' add esi,00000098h
' Label2:
' sub esi,08h
' mov eax,esi
' mov eax,dword ptr [eax]
' test eax,eax
' je Label1
' mov eax,dword ptr [esi-04h]
' push eax
' add dword ptr [ebp-0Ch],04h
' Label1:
' loop Label2
' mov eax,00000000h
' call dword ptr [ebp+08h]
' mov ebx,eax
' mov ecx,dword ptr [ebp+00000014h]
' mov dword ptr [ecx],eax
' mov eax,ebx
' sub dword ptr [ebp-00000008h],esp
' add esp,dword ptr [ebp-00000008h]
' leave
' ret
返回 (1)


本博客所有文章如无特别注明均为原创。作者:Lance.Moe复制或转载请以超链接形式注明转自 Lance's Blog
原文地址《易语言 汇编动态调用函数 自动平栈

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(2)

测试下
Lance.Moe 1年前 (2015-10-31) 回复
留名
flippy 1年前 (2015-08-21) 回复