0
给出的变量这是ASM代码:修改ASM
__declspec(naked) void foo(something* t)
{
__asm {
push ebp
mov ebp, esp
mov eax, dword ptr [t]
mov dword ptr [eax], 0
mov dword ptr [eax+4], 0
mov esp, ebp
pop ebp
}
这将是代码的C版:
struct something {
_int64 a;
_int64 b;
_int64 c;
};
void foo(struct* something) {
something->a = 0;
}
现在,我不知道如果我可以做同样的事情不用在eax中存储t。而只需使用ebp。但是我不确定“a”是什么(ebp + 28或ebp),甚至可能。这似乎并不奏效。有没有人,如果这是可能的,以及如何?
mov dword ptr [ebp+28], 0
mov dword ptr [ebp+24], 0