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