vc怎样获取call的返回值?解决方案

vc怎样获取call的返回值?
__asm
{ MOV ECX,[0x83c39c] 
PUSH ECX
MOV ECX, 0x03BA1860
mov edx,0x00507CA0
call edx
mov dword ptr hpValue,eax
}
hpvalue 是我定义的一个变量,call的返回值放在eax里,我用OD调试过了,确定没错,而且用代码注入器测试也没问题,但用VC测试游戏就提示出错关闭了,搞了两天了还没弄明白怎么回事,各位大虾知道的帮帮忙!感激不尽!

------解决方案--------------------
eax不就是返回值吗,lz写的没问题的
------解决方案--------------------
看似没有问题的
------解决方案--------------------
探讨
难道是vc版本的问题?vc内联汇编规则不是统一的吗?还是要在vc2010里设置某些参数?