delphi嵌入汇编语言出错,该怎么处理

delphi嵌入汇编语言出错Asmmov eax,$12CFmov edi,[eax*4+$044513e8]//出错在这里,提示内存读取错误mov edx

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;