Autor Thema: Protected Mode  (Gelesen 8617 mal)

bscreator

  • Gast
Gespeichert
« am: 01. March 2004, 12:05 »
Hi Leute,
ich hab´ gehört, dass die Eingabeaufforderung in Assembler geschrieben sein muss, damit der Protected Mode funktioniert. Ist das richtig?

neq

  • Beiträge: 44
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 01. March 2004, 12:33 »
ja sehr gute aussage ... wie wärs wenn du dich wenigstens ein bisl mit coden ausseinander setzt und vielleicht mal die lowlevel zeitschriften liest.

Also eigentlich muss man direkt mit ASM nur beim Bootloader arbeiten.

Für alle andren Teile gibt es auch lösungen die man mit C realisieren könnte !

Nebenbei: Wenn du ein C Progi schreibst dann wird das erst ma in ASM umgewandelt, weil die CPU mit C nix anfangen kann :)

bscreator

  • Gast
Gespeichert
« Antwort #2 am: 01. March 2004, 14:24 »
Dass die CPU mit C nix anfangen kann, ist mir schon klar. War ja auch bloß ne Frage, weil die einen so und die anderen so sagen.
Wenn man ein C-Programm schreibt, dann wird das nicht in ASM, sondern in puren Maschinencode umgewandelt.

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 am: 01. March 2004, 15:21 »
ASM ist ansich purer Machinencode. Die Ausssage kann man als Wahr nehmen, weil ein Assembler jeden ASM-Befehl in genau einen Maschinenbefehl umsetzt.
Das heisst also, was du in ASM codest, das kommt auch bei Dissassembeln wieder raus.

Die Eingabeaufforderung muss nicht in ASM geschrieben sein. Aber zumindest ein paar Dinge zur Vorbereitng müssen in ASM realisiert werden.
So müssen zumindest mal interrupt-Handler für das Keyboard geschrieben sein. Und die benötigen auf jeden Fall assembler.
Wenn du erstmal die nötigen Funktionen für den Zugriff auf Platte/Diskette, das lesen und erstellen eines Dateisystems und das auslesen des Keyboardpuffers realisiert hast (das benötigt alles irgendwo ASM), DANN ist es sinnvoll eine Shell zu bauen. VOn dieser aus kannst du dann die nötigen ASM-Funktionen von einem C-Code aufrufen.
----------------------
Redakteur bei LowLevel

neq

  • Beiträge: 44
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 01. March 2004, 18:10 »
Noch mal ganz kurz zu C ...

Also der C code wird in Assembler code gewandelt und der in Opcodes.

Opcodes sind die lustigen kleinen binär zahlen die die CPU am liebsten mag :)

Ganz doll früher gabs noch kein C und auch kein ASM ... Da musste man die Computer mit Opcodes füttern.

Jaaaa da seht ihr mal was ihr für ein glück habt !

mastermesh

  • Beiträge: 341
    • Profil anzeigen
    • http://www.kostenloser-laptop.de/
Gespeichert
« Antwort #5 am: 01. March 2004, 18:15 »
Oh ja, Opcodes sind lustig, vor allem auf der x86-Plattform. Intel, warum musstet ihr die Befehlsdecodierung so verdammt kompliziert machen?? Nehmt euch ein Beispiel an Sun's SPARC...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #6 am: 01. March 2004, 18:30 »
Wenn Bedarf besteht, dann uppe ich auf meine HP das Intel Manual bezüglich der Opcodes.
Da steht genau drin wie die Befehle Codiert werden.
Hatte ich mir mal geladen, weil ich mir irgendwann mal nen eigene Assembler schreiben wollte.
----------------------
Redakteur bei LowLevel

neq

  • Beiträge: 44
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 01. March 2004, 22:40 »
@TeeJay:  Ist zwar ne nette Idee ... aber ich glaub das niemand (es sei denn er will einen Assembler coden) wirklich etwas damit anfangen kann.

Ich hatte mich vor Jahren auch mal damit befasst. ist zwar ganz interressant aber für die heutigen programmierer nicht wichtig.

Deshalb denk ich das sich es nicht lohnen wird das upzuloaden.

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #8 am: 01. March 2004, 23:18 »
Naja was heisst für die HEUTIGEN Programmierer?

Wenn das ganze hier mal zu einem OS führen sollte, müssen dafür auch irgendwann mal Anwendungen geschrieben werden. Und was liegt da näher als zuerst einmal Entwicklungssoftware zu schreiben.

Aber soweit sind wir noch nicht ;)
----------------------
Redakteur bei LowLevel

neq

  • Beiträge: 44
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 02. March 2004, 13:33 »
aso... aber kann man nicht einfach nasm auf das jeweilige OS portieren ... so würde man doch um die programmierung eines Assemblers herumkommen oder?

(hab mich noch nie so richtig mit nasm source ausseinander gesetzt . aba ich glaub das is doch n ganz normales c proggi)

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #10 am: 02. March 2004, 14:27 »
Dazu muss aber auch erstmal das restliche System und eine API stehen die alle Funktionen unterstützt die NASM benötigt :)

Aber prinzipiell kann man darüber nachdenken es zu portieren, wenn man mal soweit ist.

Ich persöhnlich mache sowas halt immer gerne nochmal selbst. Nicht weil ich der ansicht bin einen besseren Assembler schreiben zu können, sondern weil ich einfach mal die Erfahrung machen möchte.
----------------------
Redakteur bei LowLevel

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #11 am: 07. April 2004, 16:24 »
@TeeJay

Sag ma is dein PMode Tut schon online und ich hab das nich mitgekriegt.
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #12 am: 07. April 2004, 23:41 »
Jein :)
Mastermesh ist noch dabei es für das Mag umzusetzen.
----------------------
Redakteur bei LowLevel

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #13 am: 08. April 2004, 19:41 »
@TeeJay

Ich war nur nen bisschen verwirrt weil du dich in deinen Tuts manchmal auf das PMode Tut beziehst.

Hab schon gedacht ich hätte was verpasst:)
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #14 am: 08. April 2004, 20:10 »
Ja das tut mir sorry. Ist leider etwas blöd das sich die nächste Ausgabe etwas verzögert. Aber da kann man nix machen. Ist ja nur ein Hobby Projekt.

Nur ich hatte keine Lust das ganze in jedem Tutorial zu wiederholen *g*.
----------------------
Redakteur bei LowLevel

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #15 am: 24. April 2004, 16:44 »
Wie ist das eigentlich wenn ich im RMode die gdt initialisiert habe und dann den FarJmp mache, ist dann CS automatisch mit dem ersten Codesegment Selektor geladen
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #16 am: 24. April 2004, 16:47 »
Hat sich schon erledigt
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

 

Einloggen