Zitat von
negaH:
Delphi-Quellcode:
asm
MOV EAX,[EDX]
MOV EAX,[EDX].Member
end;
In beiden Fällen steht in EDX ein Zeiger, die Derefernzierung erfolgt IMPLIZIT beim Zugriff auf den Zeiger.
Ich mag mich irren, aber erfolgt der Zugriff nicht explizit durch die eckigen Klammern? Würde stattdessen
stehen, würde die Adresse nach EAX kopiert werden, bei deinem
die vier Byte, die an der Speicherstelle stehen, auf die die Adresse in EDX zeigt.
Zitat von
negaH:
Es ist egal ob EDX nun einen Zeiger auf einen allozierten Speicherbereich enthält, oder Self eines Objektes, oder ein stinknormaler Record im Stack ist.
Ja, weil die beiden letzteren auch nur ein Sonderfall des ersteren sind: ein allozierter Speicherbereich. Der Stack ist in Assembler doch auch nur ein Speicherbereich, auf den das Stackregister zeigt, nur daß ich mit POP* und PUSH* besondere Zugriffsmethoden darauf habe.