Frage zu CPU Registern



  • hi,
    mich beschäftigen einige (verständniss)fragen bzgl. CPU registern, weiterführend zur dazugehörigen faq.

    spricht man von einem 32-bit system, dann beudetet dass, das in der cpu je register maximal 32 bit aufgenommen und folglich verarbeitet werden können?

    zu den einzelnen registern:
    al/h je 8 bit
    ax 16 bit
    eax 32 bit
    rax 64 bit
    das sollte ja stimmen? haben intel/amd prozessoren zusätzliche register?
    wenn ja, sind das die sog. befehlserweiterungen wie 3dnow! oder ist das wieder wo ganz anders einzuordnen?
    und wenn ja, wo kann man denn den registersatz einer cpu nachlesen ( in den technischen spezifikationen von amd prozessoren hab ich bspw keine angabe gefunden)

    noch eine grundsatzfrage zur funktion des pcs (hätt ich wohl eher am anfang stellen sollen 😉 ): jedes programm was von os/ durch nutzer gestartet wurde, landet zunächst vollständig im ram und wird dann quasi stückweise in den cpu cache geladen. und diese (binär?)anweisungen werden dann stück für stück auf den jeweiligen cpu registern abgearbeitet und geben einen return wert. je größer die register (etwa 64 bit) um so schneller können die befehle bearbeitet werden.
    entspricht das in etwa der wirklichkeit?

    welchen disassambler empfehlt ihr für linux bzw windows?

    okay danke für eure mühe im vorraus.



  • toostuff schrieb:

    spricht man von einem 32-bit system, dann beudetet dass, das in der cpu je register maximal 32 bit aufgenommen und folglich verarbeitet werden können?

    Stimmt so nicht. Schon zB. der Pentium hat als 32bitter auch 64bit-Register.
    AFAIK bezieht sich diese Bit-Angabe eher auf die maximale Breite der Offset-Adressen.

    toostuff schrieb:

    zu den einzelnen registern:
    al/h je 8 bit
    ax 16 bit
    eax 32 bit
    rax 64 bit
    das sollte ja stimmen?

    Ja, das ist aber letztendlich nur eines der vielen Register, die im x64 stecken.

    toostuff schrieb:

    haben intel/amd prozessoren zusätzliche register?

    Ich nehme an, du beziehst dich damit auf x86-kompatible CPU. Dann so.: Sogar eine ganze Menge davon.

    toostuff schrieb:

    wenn ja, sind das die sog. befehlserweiterungen wie 3dnow! oder ist das wieder wo ganz anders einzuordnen?

    Nein, schon der 8086 hatte noch weiterer Register. Die von dir genannten Erweiterungen benutzen zT. die Register der FPU oder fuehren neue Register ein. Wichtig ist dabei aber vor allem dass es sich dabei um Erweiterungen des Instruktionssets handelt.

    toostuff schrieb:

    und wenn ja, wo kann man denn den registersatz einer cpu nachlesen ( in den technischen spezifikationen von amd prozessoren hab ich bspw keine angabe gefunden)

    Schon der 1. Treffer bei Google sieht sehr vielversprechend aus. Wenn du ernsthaft erwaegst, dich mit diesem recht komplexen Themengebiet zu beschaeftigen, wirst du einen entsprechenden Suchbegriff doch wohl hoffentlich auch selbst formulieren koennen.

    toostuff schrieb:

    noch eine grundsatzfrage zur funktion des pcs (hätt ich wohl eher am anfang stellen sollen 😉 ): jedes programm was von os/ durch nutzer gestartet wurde, landet zunächst vollständig im ram und wird dann quasi stückweise in den cpu cache geladen.

    Stimmt so nicht.

    toostuff schrieb:

    und diese (binär?)anweisungen werden dann stück für stück auf den jeweiligen cpu registern abgearbeitet und geben einen return wert.

    Jo, hier wird idR. nur ueber Binaerrechner diskutiert. Natuerlich hat auch jeder Befehl irgendeinen Effekt, und wenn der nur darin besteht, den Instruktionspointer (das ist zB. auch ein Register, das AFAIK jede programmierbare PU hat) um eins zu erhoehen...

    toostuff schrieb:

    je größer die register (etwa 64 bit) um so schneller können die befehle bearbeitet werden.

    Das hat nichts miteinander zu tun.

    toostuff schrieb:

    entspricht das in etwa der wirklichkeit?

    So. nur sehr bedingt.

    toostuff schrieb:

    okay danke für eure mühe im v******.

    Gern geschehen, hth.



  • toostuff schrieb:

    spricht man von einem 32-bit system, dann beudetet dass, das in der cpu je register maximal 32 bit aufgenommen und folglich verarbeitet werden können?

    nö, das heisst, das die cpu 32 adressleitungen hat. es können 32 bits parallel von und zur cpu geschaufelt werden. hat sie z.b. 64 bittige register dann braucht sie 2 buszugriffe um einen registerinhalt zu übertragen


Anmelden zum Antworten