?
Hallo
ich habe folgender Ausschnitt gesehen, welcher ich nicht 100 pro verstehe:
[...]
progstart:
nop
nop
START:
call rel
rel:
pop ebp
cld
mov eax, ebp
db 2dh ; sub eax, SaveEntry dd (offset rel - offset progstart)
push eax
sub ebp, offset rel
[...]
Ich verstehe vorallem der Punkt "db 2dh ; sub eax, SaveEntry..." nicht ganz.
So wie es aussieht speichert er damit im eax-Register die Adresse vom label "START". Und, weiter unten bei "sub ebp, offset rel", wird die Adresse von progstart gespeichert. Meine Frage ist ob ich nun mich voll verrechnet habe oder ob das stimmen kann?
Wenn ich es versuche zu kontrollieren, kann es weiderum nicht stimmen, siehe hier (ausser ich hab mich total "verrechnet"):
Nehmen wir an:
progstart: 10 (dezimal, adresse)
START: 20 (dez, addr)
rel: 40 (dez, addr)
Dann wäre es: eax = rel - progstart = 40 - 10 = 30 (Adresse)
Ich hab da keinen Plan, wie ihr sieht, scheine ich was zu verwechseln. kann mir das wer vorrechnen, erklären? Ich will nur meine Dunkelheit erhellen thx
Vielen Dank
TollTroll