mov esi, [ebp-4] # the instance address mov eax, [esi+8] # first field ... mov [ebp-4], 0 # clear stack variable ... call collect ... ret # from main
collect: ... push esi ... pop esi retNote the instance address is preserved in a register even if it's not needed. And this happen only if you read a field.