ASM register



  • Ich vor kurzen einen Artikel über Assembler 64-bit gelesen. Dort wurden die register RAX, RBX, RCX, RDX erwähnt.

    Sind das die 64-bit register?
    Wenn ja, wie kann man sie verwenden?



  • Ja, es sind für 64Bit Register. "Wie kann man sie verwenden" versteh ich nicht.



  • Ich meinte, wie man zum Beispiel in den 64-bit Mode schaltet.



  • Entweder dein Programm läuft auf x86 oder x64. Den Rest macht das OS, du selbst schaltest da gar nix um.
    Wenn du im 64-bit mode bist kannst du auf die register zugreifen indem du zb. "mov rbx, rax" schreibst. Oder was meinst du ?

    Falls es dich wirklich interessiert wie man zwischen x86 und x64 switcht schau mal hier, aber das nur zur Information, nicht zum selbermachen!



  • Ich meine, wenn ich ein OS schreibe.
    Wie kann ich dann vom RealMode in den 64-bit modus schalten?



  • programmier-azubi schrieb:

    Ich meinte, wie man zum Beispiel in den 64-bit Mode schaltet.

    Per Auswahl des Betriebssystems und neubooten.
    Allerdings ist der Betriebsmodus bei (AMD)64Bit ein wenig anders als bei 32/16, in dieser Beziehung sollte man sich zuerst über die Unterschiede und Gemeinsamkeiten informieren.
    Düstere Hacks, das am Betriebssystem vorbeizumachen, sind eher nicht zu empfehlen, gerade wegen dieser gewissen Unterschiede (und Kompatibilitäten).
    Wenn man größere Registerbreiten braucht, tuns in der Regel schon die SSE-Register (128/256 Bit).
    Wenn man ein 32/16 Bit Windows hat, und kein neues Windows kaufen will, dann gibts heute zum Glück die Alternative Linuxe/Unixe, die schon seit langer Zeit mit 64 Bit (andere Prozessoren) laufen)
    Die Programme kann man auch mit 32Bit Assemblern schreiben, die 64 Bit unterstützen.



  • Bitte versteht mich nicht falsch, aber lesen würde nicht schaden! 😡

    programmier-azubi schrieb:

    Ich meine, wenn ich ein OS schreibe.
    Wie kann ich dann vom RealMode in den 64-bit modus schalten?

    Ich will nichts Hacken!
    Ich will nicht dem Betriebssystem vormachen es läuft mit 64 bit!

    Ich möchte nur ein 64-bit OS Programmieren und wollte wissen, wie man vom Real Mode in den Long Mode schalten kann. 🙂



  • Du schaltest zuerst in den Protected Mode (32-Bit) und dann in den Long Mode (64-Bit)

    Siehe http://www.lowlevel.eu/wiki/Protected_Mode und http://www.lowlevel.eu/wiki/Long_Mode



  • Ich will nicht dem Betriebssystem vormachen es läuft mit 64 bit!

    Wäre ja auch kompletter Blödsinn sowas zu wollen.

    Aber am Besten ist es zu verstehen wenn man sich anschaut wie das existierende Betriebssysteme lösen.

    Letztlich steht auch in dem vom mir verlinkten Artikel wie man den Mode selber umschaltet. Weil wenn du ein 32 Bit Programm hast läuft die CPU dabei auch im 32Bit Modus. Und das umschalten selber (siehe mein Link) ist einfach ein jump ins 64-Bit Codesegment. Allerdings solltest du dich bei einem eigenen OS um das ganze drumherum kümmern, sonst bekommst du ganz schnell ziemliche Probleme..



  • Danke für die schnellen Antworten
    Ganau das wollte ich wissen 😉


Anmelden zum Antworten