Sind Sie sicher, dass Sie wissen, was Sie wirklich brauchen? Sie haben den Code angefordert, der den Registerwert in dem von malloc
zugewiesenen Speicher ("auf den ein Zeiger zeigt") speichern würde, dh *(int*) storage
location, aber Sie haben die Antwort akzeptiert, die den Speicher speichert (oder zumindest speichert) Wert in den Zeiger selbst, was eine ganz andere Sache ist.
Um eax
in den Speicher zu speichern, auf den ein Zeiger zeigt, d. h. in *(int*) storage
, wie Sie es angefordert haben, müssten Sie so etwas tun
(Ich verwende die "Intel" rechts-nach-links-Syntax für Assembly-Anweisungen, dh mov
kopiert vom rechten Operanden in den linken Operanden. Ich weiß nicht, welche Syntax - rechts-nach-links oder links - rechts - Ihr Compiler verwendet.)
Beachten Sie auch, dass in mov edi, dword ptr storage
der dword ptr
-Teil vollständig optional ist und keinen Unterschied macht.