Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

31

10.08.2014, 22:51

Ist zwar Offtopic, aber was bringt Inline Assembler? Ist das dann schneller in der Ausführung, oder braucht man das nur für Sachen, die man in C++ sonst nicht umsetzen kann?

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

32

10.08.2014, 23:55

Zitat von »BlueCobold«

Das ist Unsinn, das sagte ich auch schon mehrfach. Man kann im Real Mode allerdings nur 1MB RAM ansprechen, sofern man nicht die A20 aktiviert, was problemlos geht.
Aber nicht "ohne Weiteres" schließlich gehen in einem Segment erst mal nur 64KB. Und meiner Meinung nach würden selbst 16MB leicht nicht mehr ausreichen.

Zitat von »BlueCobold«

wie er in den Protected Mode schaltet und die Descriptor-Tabellen korrekt einsetzt. Das ist höherer kranker Scheiß.

A20 Line und von dir vorgeschlagenes direktes Verwenden der Hardware ist einfach und Descriptor Tabellen sind höherer kranker Scheiß? Sehe ich anders. So komplex sind die wirklich nicht. Das ist eigentlich nicht sonderlich kompliziert. Außerdem richtet das bereits ein vernünftiger Bootloader den Protected Mode ein. Darum muss man sich also nicht mehr kümmern. Die Tabellen kann man dann einfach Tabellen sein lassen und erstmal nicht verwenden.

Außerdem wird man diese Tabellen auch brauchen wenn man im RealMode mehr RAM rausquetschen will, schließlich kommen sie ursprünglich aus dem RealMode.

Zitat von »MitgliedXYZ«

aber was bringt Inline Assembler?

Die Gründe die du genannt hast und sonst nicht wahnsinnig viel. Es hat seinen Grund warum Inline Assembler aus dem Microsoft Compiler bei 64 Bit gestrichen wurde.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

33

11.08.2014, 06:41

Ist zwar Offtopic, aber was bringt Inline Assembler? Ist das dann schneller in der Ausführung, oder braucht man das nur für Sachen, die man in C++ sonst nicht umsetzen kann?
Im Normalfall bringt es gar nichts. Ich habe es mal benutzt um in VC98 MMX-Befehle zu benutzen, aber empfehlen würde ich sowas heute nicht mehr. Maximal zur Übung eben.

Und meiner Meinung nach würden selbst 16MB leicht nicht mehr ausreichen.
Weil ein Anfänger nochmal genau wie viel Speicher für seine Gehversuche braucht? Wir reden hier nicht davon, dass er das nächste große Spiel damit erschafft, sondern dass er sich in Assembler einarbeitet. Wir können ja nochmal zurück auf Mikro-Controller-Vorschläge gehen, die hier gemacht wurden. Wie viel Speicher hat er da noch gleich? :rolleyes:

Descriptor Tabellen sind höherer kranker Scheiß? Sehe ich anders. So komplex sind die wirklich nicht. Das ist eigentlich nicht sonderlich kompliziert.
Ja nee, schon klar. Ein Anfänger beschäftigt sich sicher gern damit welche Bits er da wo setzen muss, damit sein Speicherblock auch beschreibbar ist. Schon klar. Du redest Unsinn.

Außerdem wird man diese Tabellen auch brauchen wenn man im RealMode mehr RAM rausquetschen will, schließlich kommen sie ursprünglich aus dem RealMode.
Im Real Mode muss er sie aber nicht anlegen und auch nicht analysieren, um rauszufinden, wo seine Speicher-Pages sind und welche er nutzen darf. Die IDT ist schon angelegt. Zudem finde ich es sehr sinnvoll mal mit dem x86er-Konzept eingestiegen zu sein. Schon rein aus historischen Gründen.


Aber Du hast natürlich mit allem Recht und ich Unrecht. Ich seh schon. :rolleyes:
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

34

11.08.2014, 09:02

Eine Randbemerkung:
Um spezielle Prozessorbefehle wie SSE zu benutzen, braucht man gar kein Assembler.
Dazu gibt's nämlich Intrinsics.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

35

11.08.2014, 11:52


Komplet in Assembler!? o.O
Zumindest alles, was im Prototyp C/C++ war.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

36

11.08.2014, 13:02

Zitat

Weil ein Anfänger nochmal genau wie viel Speicher für seine Gehversuche braucht? Wir reden hier nicht davon, dass er das nächste große Spiel damit erschafft, sondern dass er sich in Assembler einarbeitet. Wir können ja nochmal zurück auf Mikro-Controller-Vorschläge gehen, die hier gemacht wurden. Wie viel Speicher hat er da noch gleich?

Die Frage ist eher warum darauf verzichten sollte? Am PC hat man andere/höhere Anforderungen. Max. 64KB linear adressieren zu können ist einfach wenig. Da gibt es sogar genügend Mikrokontroller die mehr können. Und, es kann daran liegen das ich damit nie etwas zu tun hatte(so wie ich bei dir den Eindruck teilweise im Protected Mode habe), aber Segmentierung verkompliziert besonders wenn eben die paar KBs nicht mehr ausreichen die Sache deutlich.

Zitat von »BlueCobold«

Im Real Mode muss er sie aber nicht anlegen und auch nicht analysieren, um rauszufinden, wo seine Speicher-Pages sind und welche er nutzen darf. Die IDT ist schon angelegt.

Es gibt keinen Grund im Protected Mode sich damit auseinander zu setzen. Der Protected Mode ist in der Regel schon vom Bootloader eingerichtet. Protected Mode bedeutet nicht automatisch Paging zu benützen. Genauso wie du richtig sagst das man auch am Anfang im Real Mode sich nicht um dessen Tabellen kümmern muss.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

37

11.08.2014, 13:08

(so wie ich bei dir den Eindruck teilweise im Protected Mode habe)
Unsinn. Der geneigte Leser hätte festgestellt, dass ich Assembler schon in Windows/DirectX-Programmen eingesetzt habe und dass ich schon multiple Windows-Anwendungen komplett in Assembler geschrieben habe. Des weiteren habe ich den üblichen OS-Kernel gebaut, was wohl jeder mal macht. Eigenen Bootloader, eigene Speicher- (RAM und Harddisk) und Thread-Verwaltung mit Grafik-Anbindung. Das schließt natürlich auch den Protected Mode mit ein.

Der Protected Mode ist in der Regel schon vom Bootloader eingerichtet.
Also muss er als Anfänger nicht nur eine VM aufsetzen, sondern auch noch den passenden Bootloader installieren? Statt einfach mal so ein DOS- oder Windows-Programm mit Assembler zu schreiben? Oh man.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

38

11.08.2014, 15:41

Ich kann nur sagen ich kann da nichts schweres daran entdecken.
Im Prinzip lädt man sich runter was zum Beispiel in dem von mir verlinkten Wiki erklärt ist. Im Vergleich das aufwendige Dos Box aufsetzen und seine Anwendung dort installieren?

Aber gut, langsam habe ich keine Lust mehr.
Wer gerne Real Mode und ganz besonders DOS nutzen will kann das tun. Der bleibt halt dann mit seiner Erfahrung im letzten Jahrtausend. Ist aber ja eh nur Spielerei, die ganze Sache.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

39

11.08.2014, 16:54

Man sollte erst laufen lernen, bevor man rennt. Niemand ist gezwungen bei diesem Wissenstand zu bleiben. Als Einstieg macht es allerdings durchaus Sinn. Und sei es nur historisch.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

40

11.08.2014, 19:08

Spiele Programmierer, was hast du denn immer mit deinem letzten Jahrtausend? Wenn die Leute hier fragen wie sie am besten anfangen Spiele zu entwickeln, sagst du dann auch sie sollen sich mit Shadern, Sculpting, High-End Engines und was weiß ich was beschäftigen?
Dos Box ist schnell geladen und fix installiert. Deine Bootloader-Variante ist da etwas aufwendiger. Ich denke hier geht es darum auf einfache Weise zu gucken wie man mit Assembler arbeiten kann. Wie schon gesagt, neue Dinge kann man sich danach immer noch angucken. Aber erst mal soll es beim Einstieg gut laufen. Mir kommt es so vor als hättest du wirklich einfach eine Abneigung gegen Dos Box. Du argumentierst nämlich irgendwie ein wenig am ganzen vorbei.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige