Umwandlung des basierten indizierten Modus in einen indirekten Adressierungsmodus (x86-Assembly)

Ich arbeite ständig daran, Beispiele vom komplexen indirekten Adressierungsmodus in einfache Teile des indirekten Adressierungsmodus umzuwandeln. Ich bin jedoch auf ein Beispiel aus dem Basierten Modus gestoßen, das ich nicht "transformieren" kann.

Code

move %eax, 28(%esp)

Ich habe es versuch

addl    $28, %esp
movl    (%eax), %esp

Dies erzeugt einen Segmentierungsfehler. und ich hab keine ahnung wie ich es sonst schreiben soll.

Ein weiteres Beispiel, ich habe nicht zu "transform ist

compl $4, 28(%esp)

-> in

addl    $28, %esp
cmpl    $4, %esp

Aber dies funktioniert, aber es ändert meine Ausgabe leicht, so dass es möglicherweise auch nicht korrekt ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage