Autor Thema: Was war vor Assembler /eine Huhn-Ei-Frage  (Gelesen 6122 mal)

Christoph

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« am: 07. August 2013, 20:05 »
Meine Frage lautet was war eigentlich vor Assembler. ich weiss nur das man früher die Befehle mit Schaltern "eingegeben" hat.
Mit 0 und 1.Hat von euch jemand so schon mal progammiert ? . Und ist dies heute überhaupt noch möglich.

Ich habe in Google nor was von Opcodes gefunden, aber diese sind ja alle in Hexadezimal geschrieben. Und Assembler arbeitet
ja meines wissens nach mit Memnonics.

Vielleicht kann mir da jemand helfen, ich bin noch am weitersuchen.

Gruss Christoph

streetrunner

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 07. August 2013, 20:10 »
Hexadezimal (Ziffern von 0-F) ist nur eine andere Schreibweise für Zahlen, so wie wir normalerweise das Dezimalsystem benutzen (Ziffern von 0-9). Der Computer kennt halt nur 0 und 1, aber diese Systeme lassen sich alle in einander umrechnen. Und wenn du deine Opcodes mit einem Hex-Editor in eine Datei schreibst lässt sich damit bestimmt auch programmieren...stelle ich mir nur SEHR SEHR mühsam vor.

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 07. August 2013, 20:32 »
Ich habe mal die Umfrage entfernt. Ich glaube nicht, dass "1" und "2" passende Antworten auf diese Frage sind ;)
Dieser Text wird unter jedem Beitrag angezeigt.

Svenska

  • Beiträge: 1 790
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 08. August 2013, 17:05 »
Eine Assembler-Quelltextdatei enthält Befehle und Daten. Jeder Befehl kann auf einen oder mehrere Opcodes passen (hängt von den Adressierungsarten ab), von denen der Assembler den richtigen auswählt. Jeder Opcode ist damit ein Maschinenbefehl. Die werden üblicherweise hexadezimal (Basis 16 = 4 Bit pro Ziffer) dargestellt, früher auch oktal (Basis 8 = 3 Bit pro Ziffer). Die zu einem Opcode gehörenden Daten folgen normalerweise dem Opcode direkt im Speicher. Das kann man auch alles auf einem Blatt Papier erledigen, wenn man möchte.

Die CPU führt einen Befehl aus, indem sie den Bus nach Daten fragt. Normalerweise antwortet RAM oder eine bestimmte Hardware, du kannst aber auch gerne ein paar Schalter antworten lassen (dann mit den Werten, die auf dem Blatt Papier stehen).

Wir haben das an der Uni mal machen dürfen. Ist ziemlich mühselig und dauert ewig, funktioniert aber - wenn die CPU langsam genug sein kann (moderne CPUs und dynamische Speicher können das nicht ohne großen Aufwand).

Christoph

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 08. August 2013, 20:28 »
Herzlichen Dank füre eure Antworten.

Gruss Christoph

74h7k3fg

  • Beiträge: 6
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 09. August 2013, 14:39 »
Ja, ich hab mal im binär programmiert (ich habs versucht). Aber es ist SEEEEEEEEEEEEHR viel aufwand und sehr schwierig, aus zwei gründen:
1) wenn du in C schreibst:
if(boolean)
{
command();
//command2();//das hier hast du vergessen
}
und du vergisst etwas, dann kannst du es nachher noch leicht ergänzen.
im binär sieht das etwa so aus:
<binär>
if not boolean
jump forward 5 byte//1 command
command();//the command
</binär>
wenn du hier etwas vergisst, musst du den befehl ergänzen UND die jumps in den if und while verändern, der code wird ja länger (oder kurzer). also:
<binär>
if not boolean
jump forward 10 byte//2 commands!!!!!!!!
command1();//the command
command2();//the second command
</binär>
2)es gibt KEINE syntax errors!!!
das programm wird NICHT vor dem ausführen auf syntax errors geprüft!!!
wenn du zum beispiel in einer mathematischen operation den parameter 3 byte statt 4 byte schreibst, dann wird der nächste befehl als parameter genommen
das bedeuted entweder, dass 1 befehl übersprungen wird, oder dass die parameter des übersprungenen befehls als befehl "ausgeführt" werden
VERSUCHEN, IM BINÄR ZU PROGRAMMIEREN IST WIE ZU VERSUCHEN, EINE STADT AUS GRASHALMEN ZU ERRICHTEN ODER OHNE SCHIFF üBER DEN ATLANTIK ZU SCHWIMMEN!!!!!!!!!!!!!!!!!!
« Letzte Änderung: 09. August 2013, 14:40 von 74h7k3fg »

74h7k3fg

  • Beiträge: 6
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 09. August 2013, 14:45 »
achja, was ich eigentlich sagen wollte:
ja das mit schaltern gabs auch deshalb, weil die computer keine festplatte hatten und es deshalb keine möglichkeit gab, programme digital zu speichern.
neben den schaltern gab es auch die "lochkarten", das waren karten mit löchern, die hat man einem lesegerät gegeben, der hat das dann gelesen und an die CPU weitergegeben.
« Letzte Änderung: 10. August 2013, 09:31 von 74h7k3fg »

streetrunner

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 09. August 2013, 22:50 »
Ich meine die ersten Rechner wurden sogar durch "umverkabeln" der einzelnen Komponenten programmiert (ENIAC war da so ein Kandidat). Das wäre dann noch mehr Arbeit, und bestimmt ists ab und an im Chaos versunken.

Relbmessa

  • Beiträge: 73
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 23. August 2013, 22:31 »
Hallo ,
einfach mal Konrad Zuse eingeben !!

Manello

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 28. August 2013, 17:59 »
Zitat
<binär>
if not boolean
jump forward 5 byte//1 command
command();//the command
</binär>
wenn du hier etwas vergisst, musst du den befehl ergänzen UND die jumps in den if und while verändern, der code wird ja länger (oder kurzer). also:
<binär>
if not boolean
jump forward 10 byte//2 commands!!!!!!!!
command1();//the command
command2();//the second command
</binär>

Das ist aber kein binär :roll:
Und falls du es damit erklären wolltest:
Zu dem if not boolean: Gibt es wohl kaum, denn wenn das Binär system nur aus 1/0 besteht, kann
es dies ja nicht wirklich prüfen oder es währe Schwachsinn.
Die Erlärung mit dem IFs und den While stimmt auch nicht so ganz, denn in Binär sähe es komplett anders aus,
sowas gibt es dort nähmlich auch nicht direkt.

 

Einloggen