Verwirrt, wegen der ganzen Register, Segmente und Indexe, wohin und woher ???



  • hallo,
    ich hab da nen problem und zwar ist es mir nicht ganz klar, wann ich einen Register( und auch welchen ) ansprechen soll. genauso ist das mit den segmenten ect. woher weiss ich woher was kommt und wann ich was woraus lese?
    ich hab irgendwie die orientierung verloren -.-
    waer nett, wenn wer nen paar tipps haette.

    Gruß Tobi.



  • Lies mehr Tutorials. Fuer die Bedeutung von Segmentregistern solltest du dir darueber klar werden, wie die Speicheradressierung funktioniert. Dann schau dir fuer konkrete Probleme noch gezielt an, welche der dafuer benoetigten Befehle mit welchen Registern arbeiten koennen.



  • Schau dir mal das Lowlevel-Magazin an



  • Hey

    Segmentregister brauchte ich nie, ich schätze mal, dass man das normalerweise (win32asm, linux benutzerwelt asm) gar ned benötigt. Weil es gibt auch gar keine vernünftigen Papers. Bei Windows ists sowieso ein flat modell, da gibts keine segmente, dasselbe bei linux, oder?

    esp, eax, ecx, ebx, edx, esi, edi sind general-purpose register

    ecx -> wird häufig für counter (schleifen) benötigt
    esi/edi häufig im zusammenhang mit string manipulationen und eax, ebx, edx oft für berechnungen oder um irgend ein Wert zwischen zu speichern. In der Regel kann man die für alles benutzen.

    esp/ebp sind stackregister, d.h. esp -> stack pointer & ebp (stack) base. esp verändert sich bei jedem pop/push (bzw. stack manipulation) hingegen ebp bleibt. (ausser man verändert den register wert mal)

    Mal so kurze verdammt oberflächliche erklärung, wenn wer was anzufügen hat oder mich korrigieren will, soll er.

    gruss


Anmelden zum Antworten