首页
社区
课程
招聘
[求助]pediy 汇编不会写求帮助
发表于: 2011-12-17 16:44 3537

[求助]pediy 汇编不会写求帮助

2011-12-17 16:44
3537
我现在在一exe里面修改了代码用了两个地址[68c550] [68c5a0]

在一个循环里面嵌入,一个标记循环开始结束,一个计算循环的次数
     
     这里 mov dword ptr ds:[68C550],1   标记循环开始
          mov  dword ptr ds:[68C560],0  计数器清0
     循环{
             循环{

                             函数A//函数A会在任何其他地方调用,其他调用不是我要的数据,所以我标记这个循环开始后调用这个函数里面的lea中edx的值是我要的值,循环结束后就不再取这个值。

                                  {
                                   lea edx,dword ptr ss:[esp+10]//这句里面 edx保存的值是我要存的值                    
                        cmp dword ptr ds:[68c550],1                                     jle (1)
                                         mov  [68c600+16*[68c560]],edx地址中保存的值                                    
                                     (1)。。。。接着执行该函数的内容
                          这里 add dword ptr ds:[68C560],1  
                                   }
                                       }
             }

        这里 mov dword ptr ds:[68C550],0标记循环结束

上面标红的汇编语句是我写的,但是我没把握是对的,请同学们指导指导这些语句该怎么写才对。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
lea edx,dword ptr ss:[esp+10]//这句之后edx是一个栈指针,不确定你是需要这个指针还是需要这个指针指向的内容。如果是后者,请改为 mov edx,dword ptr ss:[esp+10]
mov  [68c600+16*[68c560]],edx这句太复杂了……
最好再占用一个寄存器
mov eax,dword ptr [68c560]
shl eax,4
mov [68c600+eax],edx

另外68c600这种数值不一定会被认定为0x68c600,有可能会出现编译错误。
还有lea edx,dword ptr ss:[esp+10]这里面的+10,基本会被认定为十进制的10,就是0x0a,而不是0x10,所以这些常数的类型需要显式确定。
2011-12-17 18:04
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
没有绝对的把握,别用绝对的地址。
2011-12-17 20:25
0
游客
登录 | 注册 方可回帖
返回