delphi嵌入编译语言出错

delphi嵌入汇编语言出错
Asm
  mov eax,$12CF
  mov edi,[eax*4+$044513e8] //出错在这里,提示内存读取错误
  mov edx,[edi]
  push 0
  push 1
  push $44e
  mov ecx,edi
  call [edx+$4]
  mov eax,[$445b028]
  mov edx,[edi+$C]
  mov [eax+$1cd8],edx
end;

但我用代码注入器运行上面的代码却能正常运行,求解???

------解决方案--------------------
debug 下 看下具体的数值。。
------解决方案--------------------
你的本意是在别个进程执行这段代码吧?你在自身进程内访问这些内存地址肯定会错误的啊
------解决方案--------------------
保护下edi看看.

比较明显的问题是,你这里没有保护edi

asm
push edi
...
pop edi
end;