开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2316|回复: 0
收起左侧

[其它] 武林外传的走路CALL那写错了,求指点.

[复制链接]
发表于 2015-3-18 16:51:01 | 显示全部楼层 |阅读模式   河南省平顶山市
这是武林外传的走路CALL
00489501    8B6C24 28       MOV EBP,DWORD PTR SS:[ESP+28]
00489505    6A 01           PUSH 1
00489507    8B8D 38150000   MOV ECX,DWORD PTR SS:[EBP+1538]
0048950D    E8 6EAA0000     CALL ElementC.00493F80
00489512    8BF0            MOV ESI,EAX
00489514    8D4424 54       LEA EAX,DWORD PTR SS:[ESP+54]
00489518    50              PUSH EAX
00489519    53              PUSH EBX
0048951A    8BCE            MOV ECX,ESI
0048951C    E8 CFF90000     CALL ElementC.00498EF0
00489521    8D8C24 00010000 LEA ECX,DWORD PTR SS:[ESP+100]
00489528    8D9424 F4000000 LEA EDX,DWORD PTR SS:[ESP+F4]
0048952F    51              PUSH ECX
00489530    52              PUSH EDX
00489531    8BCE            MOV ECX,ESI
00489533    E8 08FB0000     CALL ElementC.00499040
00489538    8B8D 38150000   MOV ECX,DWORD PTR SS:[EBP+1538]
0048953E    53              PUSH EBX
0048953F    6A 01           PUSH 1
00489541    56              PUSH ESI                              ; 0254B028
00489542    6A 01           PUSH 1
00489544    E8 27AF0000     CALL ElementC.00494470

易语言写的走路CALL
.版本 2

asm_置代码 ()
asm_pushad ()

asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (#一级偏移))
asm_mov_esp_ptr_eax_add (十六到十 (#二级偏移))
asm_mov_ebp_esp ()

asm_push (十六到十 (“1”))
asm_mov_ecx_ptr_ebp_add (十六到十 (#目的地坐标改变值))
asm_mov_eax_常数 (十六到十 (#走路CALL1))
asm_call_eax ()
' ---一个CALL完成
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (#一级偏移))
asm_mov_ebp_ptr_eax_add (十六到十 (#二级偏移))
asm_mov_eax_ptr_ebp_add (十六到十 (“44”))
asm_mov_esi_eax ()
asm_lea_eax_ptr_ss_esp_add (十六到十 (“54”))
asm_push_eax ()
asm_push_ebx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (#走路CALL2))
asm_call_eax ()
' ----第二个CALL完成
asm_lea_ecx_ptr_ss_esp_add (十六到十 (“100”))
asm_lea_edx_ptr_ss_esp_add (十六到十 (“F4”))
asm_push_ecx ()
asm_push_ebx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (“00499040”))
asm_call_eax ()
' --第三个CALL完成
asm_mov_ecx_ptr_ebp_add (十六到十 (#目的地坐标改变值))
asm_push_ebx ()
asm_push (十六到十 (“1”))
asm_push_esi ()
asm_push (十六到十 (“1”))
asm_mov_eax_常数 (十六到十 (#走路CALL3))
asm_call_eax ()
' ---第四个CALL完成
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (#一级偏移))
asm_mov_eax_ptr_eax_add (十六到十 (#二级偏移))
asm_mov_eax_ptr_eax_add (十六到十 (#目的地坐标改变值))
asm_mov_eax_ptr_eax_add (十六到十 (“30”))
asm_mov_ecx_ptr_eax_add (十六到十 (“4”))
asm_mov_eax_常数 (取字节集数据 (到字节集 (X坐标), #整数型, ))
asm_mov_eax_ptr_ecx_add (十六到十 (“1C”))
asm_mov_eax_常数 (取字节集数据 (到字节集 (Y坐标), #整数型, ))
asm_mov_eax_ptr_ecx_add (十六到十 (“24”))

asm_popad ()
asm_ret ()
asm_调用函数2 (全局进程, asm_取代码 ())

点击后人物不会实现走路,游戏也不报错,没有反映.下面是调试输出的
00000000 : 60                      PUSHAD                                            
00000001 : A1E0CBD000              MOV eax,dword ptr ds:[00D0CBE0]                  
00000006 : 8B401C                  MOV eax,dword ptr ds:[eax+1C]                     
00000009 : 8B6028                  MOV esp,dword ptr ds:[eax+28]                     
0000000C : 8BEC                    MOV ebp,esp                                       
0000000E : 6A01                    PUSH 01                                          
00000010 : 8B8D38150000            MOV ecx,dword ptr ss:[ebp+00001538]               
00000016 : B8803F4900              MOV eax,00493F80                                 
0000001B : FFD0                    CALL eax                                          
0000001D : A1E0CBD000              MOV eax,dword ptr ds:[00D0CBE0]                  
00000022 : 8B401C                  MOV eax,dword ptr ds:[eax+1C]                     
00000025 : 8B6828                  MOV ebp,dword ptr ds:[eax+28]                     
00000028 : 8B4544                  MOV eax,dword ptr ss:[ebp+44]                     
0000002B : 8BF0                    MOV esi,eax                                       
0000002D : 8D442454                LEA eax,dword ptr ss:[esp+54]                     
00000031 : 50                      PUSH eax                                          
00000032 : 53                      PUSH ebx                                          
00000033 : 8BCE                    MOV ecx,esi                                       
00000035 : B8F08E4900              MOV eax,00498EF0                                 
0000003A : FFD0                    CALL eax                                          
0000003C : 8D4C2400                LEA ecx,dword ptr ss:[esp+00]                     
00000040 : 8D5424F4                LEA edx,dword ptr ss:[esp+F4]                     
00000044 : 51                      PUSH ecx                                          
00000045 : 53                      PUSH ebx                                          
00000046 : 8BCE                    MOV ecx,esi                                       
00000048 : B840904900              MOV eax,00499040                                 
0000004D : FFD0                    CALL eax                                          
0000004F : 8B8D38150000            MOV ecx,dword ptr ss:[ebp+00001538]               
00000055 : 53                      PUSH ebx                                          
00000056 : 6A01                    PUSH 01                                          
00000058 : 56                      PUSH esi                                          
00000059 : 6A01                    PUSH 01                                          
0000005B : B870444900              MOV eax,00494470                                 
00000060 : FFD0                    CALL eax                                          
00000062 : A1E0CBD000              MOV eax,dword ptr ds:[00D0CBE0]                  
00000067 : 8B401C                  MOV eax,dword ptr ds:[eax+1C]                     
0000006A : 8B4028                  MOV eax,dword ptr ds:[eax+28]                     
0000006D : 8B8038150000            MOV eax,dword ptr ds:[eax+00001538]               
00000073 : 8B4030                  MOV eax,dword ptr ds:[eax+30]                     
00000076 : 8B4804                  MOV ecx,dword ptr ds:[eax+04]                     
00000079 : B8000069C3              MOV eax,C3690000                                 
0000007E : 8B411C                  MOV eax,dword ptr ds:[ecx+1C]                     
00000081 : B80000B8C1              MOV eax,C1B80000                                 
00000086 : 8B4124                  MOV eax,dword ptr ds:[ecx+24]                     
00000089 : 61                      POPAD                                             
0000008A : C3                      RET               

求高手指点错误.   

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表