Warum ist es faszinierend, dass Rollercoaster Tycoon zu 99% in Assembly programmiert wurde?

5 Antworten

Wenn etwas vom Menschen in Maschinensprache geschrieben wird, so kann der Mensch Optimierungen anbringen, die der Compiler, der das von C in Manschinensprache umsetzt, nicht hinbekommt. So kann eien Software geschrieben werden, die Geschwindigkeiten erreicht, die mit dem Compiler eine bessere Hardware benötigen würde, um das selbe zu erreichen.

Das Maschinensprache-Programm hat aber einen gewaltigen Nachteil: Es ist wesentlich unübersichtlicher und daher schwerer zu pflegen, wenn es um Updates geht. Auch ist es für andere Programmierer sehr schwer, Maschinensprache-Programme von anderen Leuten zu verstehen. Daher iste s auch weniger geeignet für Programmierung mit mehreren Beteiligten, sollen Maschinensprache-Programme mit mehreren Programmierern erstellt werden,s o verlangt das eine gute Supervision, also Jemanden, der den Überblick behält und steuernd eingreifen kann.

BobbyS38 
Fragesteller
 19.10.2019, 13:55

Verstehe. Ist es noch faszinierender, dass das Spiel eine einzelne Person in Assembly programmiert hat?

0
Minihawk  19.10.2019, 15:56
@BobbyS38

Das ist auch faszinierend, da es garantiert heutzutage eien Seltenheit ist. Früher war es normal, dass Einzelpersonen die Programmierung eines SPieles alleine machten, aber da waren die Computer auch mit 64KB (z.B. C64) oder 512KB (z.B. Atari ST oder Amiga) ausgestattet... :)

0

Naja, Du erreichst bei entsprechenden Kenntnissen bei gleicher Rechenleistung mehr Leistung raus. Das Programm ist deutlich optimierter geschrieben.

Assembler ist Maschinensprache, d.h. das Programm greift ohne Umwege über einen Interpreter direkt auf die Hardware zu. Das spart Speicher und erhöht die Ablaufgeschwindigkeit.

Als RAM noch kostbar war, wurde viel in Assembler gemacht, beispielsweise in der 8-Bit-Ära.

Ich habe selbst noch in Assembler programmiert. Da wird wirklich jedes Bit einzeln angesteuert. Es wäre wahrscheinlich einfacher, dem Prozessor direkt seine Opcodes zu geben...

Woher ich das weiß:eigene Erfahrung – 10 Jahre Hardwarehilfe und eine Menge Eigenerfahrung
Minihawk  19.10.2019, 16:02

Das kann ich nicht nachvollziehen. Was willst Du ausdrücken? Bei Assembler-Programmierung gibt man dem Prozessor durch Befehle, die aus einem, zwei oder vier Bytes bestehen, was er tun soll.

Jedes Bit einzeln angesteuert, was soll das bedeuten?

PS: Ich habe 8080, Z80, 6502 und 68000er-Prozessoren in Assembler programmiert. Teilweise ohne Assembler-Zusatzprogramm, also mit einer Mnemonic-Liste. Da tippt man Hexcodes ein, die aus zwei Ziffern bestehen, die von 00 bis FF gehen und ein Bytes ausdrücken. Beim Z80 ist dann z.B. C2 00 00 der Befehl JNZ zur Adresse 0, übersetzt als Jump on Not Zero...

0
JKL213  19.10.2019, 19:39
@Minihawk

Es ist jetzt nicht allzu anders, jedoch wird hier auch der RAM direkt angesteuert (lda $XXXX)

0
Minihawk  21.10.2019, 13:29
@JKL213

Das eurde er früher auch, nur nicht bei Pcs, die hatten EMS und XMS-Speicher, den man mit blöden Routinen ansteuern musste. Beim ATARI ST von 85 war das schon damals normal...

0

Assembly ist ziemlich hardwarenah, desto näher an der Hardware, desto (richtig gemacht) effizienter, aber auch schwieriger und umständlicher ist es das ganze zu schreiben.