Register



  • hallo!
    ich habe die Frage wie die ganzen Register in Assembler
    miteinander interagieren bzw zusammenhängen, bessergesagt das Zusammenspiel
    aller Register miteinader. Wann muss ich welches Register
    einsetzen bzw. benutzen. Ich das es Allzweckregister,Segmentregister,
    Zeige und Indexregister und Flagregister gibt und deren
    Aufgaben, nur das alleine reicht nicht aus um zu wissen wann ich welches einsetze.
    Ich habe mir auch diverse Tutorials angeschaut und durchgelesen,
    geht aber aucvh nicht so deutlich hervor.
    kann mir das bitte jemand so erklären, dass ich das verstehen kann.



  • Moin, Moin...

    Prinzipiell steht es Dir frei, welches Register Du wann benutzt. Es gibt aber bestimmte Befehle(z.B. out, in, mul, div), die die Benutzung eines bestimmten Registers setzen. Meistens ist das (e)ax.

    Die allgemeinen Register sind eax, ebx, ecx und edx.

    edi und esi haben eine besondere Bedeutung bei den sogenannten Stringbefehlen. Du kannst sie aber auch als allgemeine Register betrachten.

    Die Segmentregister haben nun wirklich eine besondere Bedeutung, da sie den Segmentanteil einer Adresse(im Real Mode) bzw. den Selektor eines Speichersegments(im Protected Mode) enthalten. Sie dürfen NICHT anderweitig verwendet werden.

    Das Register esp ist der Stackpointer. ebp dient der Parameterübergabe an eine Funktion über den Stack.

    Ciao...

    [ Dieser Beitrag wurde am 05.06.2002 um 14:31 Uhr von KalEl editiert. ]



  • Hallo!
    Vilen dank für den Beitrag auf meine Frage eins sollte ich auch noch wissen. Was ist das 'e' immer davor?
    z.B
    "Meistens ist das (e)ax"
    Grüße



  • Die Register eax, ebx, ecx und edx können auf unterschiedliche Art und Weise angesprochen werden. Das ganze Register ist 32 Bit breit. Möchtest Du also die ganzen 32 Bit ansprechen heißt es eax, ebx, etc.

    Der 16 Bit Anteil(die unteren 16 Bit) heißt ax, bx, cx, dx. Diese 16-Bit-Register unterteilen sich dann nochmal in zwei 8-Bit-Register.

    al, ah, bl, bh...usw.

    31...........................................................0 Bit
    eax

    15...........................0 Bit
    ax
    15....ah........08....al.....0 Bit

    Ciao....

    [ Dieser Beitrag wurde am 05.06.2002 um 15:03 Uhr von KalEl editiert. ]

    [ Dieser Beitrag wurde am 05.06.2002 um 15:05 Uhr von KalEl editiert. ]

    [ Dieser Beitrag wurde am 05.06.2002 um 15:06 Uhr von KalEl editiert. ]


Anmelden zum Antworten