Was bedeutet push dword ptr [eax+22] bedeuten?

Ich weiß, dass z.B. push eax speichern würde, eax auf dem stack und dekrementiert esp um 4. Und die push dword ptr bedeutet, es muss drücken 4 bytes, aber dann bin ich verwirrt. Auch wenn es [esi+22] dies wäre die gleiche Sache?

  • Das war schnell, vielen Dank Kerrek. Könnte ich Fragen, ist es korrekt, dass nur auf der Grundlage, dass die Letzte Anweisung, die es gibt keinen Weg, der Leser würde wissen, ob es war, deutete auf ebp+ oder ebp- ?
  • Sorry, ich verstehe nicht ganz die Frage - wer ist "es"? Was meinst du mit "reader"? Lesen des Quellcodes oder der Inspektion der stack?
  • (Und bitte fügen Sie den Kommentar an die Antwort - auf diese Weise bekomme ich eine Benachrichtigung. Ich habe gerade passiert, um zu sehen, Ihren Kommentar zufällig diese Zeit. Oder fügen Sie die "@name " - marker.)
  • Okay danke @KerrekSB weiß ich für das nächste mal. Der einfachste Weg, um zu beschreiben, meine Verwirrung ist mit ein Beispiel, wenn 'push DWORD [ebx + 42]' war 'push DWORD [EBP+42]' ich weiß, es wäre ein parameter, und wissen, wo Sie ist, wurde bei in dem Stapel. Während die, ohne zu wissen, den Wert in ebx gäbe es keine Möglichkeit zu wissen, seine Aufrechnung gegen ebp (ohne Prüfung der stack, nur dass die Zeile des Quellcodes. Ich hoffe, dass Sie nicht klingen wie eine dumme Frage, nur versuchen in meinen Kopf zu kriegen, Dank.
  • Wenn ebx enthält den Anfang eines Arrays, möchten Sie vielleicht schieben einige andere array-element und müssen daher eine offset-Berechnung...
InformationsquelleAutor Soap | 2014-02-06
Schreibe einen Kommentar