问题是这样的:
我需要在目标程序代码中搜索一个存放 0x442AFF 或 442AFB 数据的地址
我在它的进程用消息勾子加载一个DLL
下面是C++在DLL中搜索的函数:

DWORD SearchAddress(){    
    //从 0x4200000 - 5500000 搜索地址(已知该地址会在这个区间)
    DWORD Address=0;
    _asm{
        pushad
        mov edi,0x4200000
SearchStar:
        mov eax,dword ptr ds:[edi]
        cmp eax,0x442AFB
        jz  SearchEnd
        cmp eax,0x442AFF
        jz  SearchEnd
        add edi,1
        cmp edi,0x5500000
        ja  SearchFail
        jmp SearchStar
SearchEnd:
        mov Address,edi
SearchFail:
        popad
    }    
    return Address;
}

但结果返回的总是0,(我确定该地址区间一定有这二个值之一)
请高手指教一下哪里有错误