Wie Programmiert man ein Programm wenn man...

11/18/2010 15:41 JaMaL#16
Quote:
Originally Posted by MrSm!th View Post
Hex ist eben leichter zu lesen :p
Naja, ich meinte es eben so, dass man das erste Programm von Hand in Form von Opcodes geschrieben haben muss, es gab ja noch keinen Assembler oder Texteditor.
Ja, Hex ist wirklich leichter lesbar als Dual. Generell sollte man sich als Programmierer, auch im Hobbybereich, die Umrechnungen zwischen Dezimal, Dual und Hexadezimal aneignen und man sollte diese auch eigenständig "lesen" können. Je größer die Dualzahl, umso schwerer wird es natürlich.

Auf tiefer Ebene ist aber jegliche "Kommunikation" mit dem Prozessor in Form von Signalen, die binär codiert sind. Auch wenn ich am Rechner Hexadezimalzahlen eingebe, die Opcodes repräsentieren.

Quote:
Kurz gesagt: wenn ich weiß, was wie sich der Prozessor verhält, wenn er eine bestimmte Folge von Binärcode (0/1) geschickt bekommt, kann ich anfangen Software zu realisieren.
Das sind die von dir angesprochenen Opcodes, also die Befehle im Befehlssatz des Prozessors. Natürlich musste früher man als allererstes mit einfachem Maschinencode anfangen.

Aber man muss sich immer bewusst machen, dass auch heutzutage jedes Programm bzw. jeder Prozess, egal ob kompiliert oder interpretiert, letztendlich als eine interpretierbare Folge von Nullen und Einsen über Bussysteme an einen Prozessor gesendet werden.
11/18/2010 17:44 JaMaL#17
Quote:
Originally Posted by GM-Hjacker View Post
Leute BIOS ist da damit der Computer übergaupt mal laäuft da ich glaube das im BIOS Assembler drin war (nicht sicher) oder vll Matrix atiges wie z.B 1001101001111 usw. aber aufjedenfall mit BIOS fing es an ich bin nicht doff!! Assembler ok vll stimmt nicht ganz aber da bin ich mir auch super sicher ist alles Mikrometer von Hand gemacht worden!!
Was hast du immer mit der Matrix? Lieber bißchen mehr lesen und nicht so viel SciFi-Hackerfilme gucken. Zahlenfolgen wie 10110101 können Dualzahlen bzw. Binärcode sein, das hat nichts mit der Matrix zu tun, sondern mit zwei Zuständen Null (0) bzw. Eins (1), mit denen man über Spannungsunterschiede (High-/Low-Voltage) Informationen an elektrische Bauteile schicken kann, wenn man es mal auf Hardware überträgt.

Und letztendlich werden jegliche Software und jegliche Daten und Befehle in eine Folge von 0 und 1 umgewandelt, so wird Information an einem Rechner gespeichert, geladen und verwertet. Das hat nichts mit Magie zu tun, sondern damit, dass man eben über Spannungsunterschiede beispielsweise ganz einfach Bitmuster senden kann zwischen Elektronik. Und genau deshalb laufen die Sachen eben binär auf Hardwarebene ab.

Ich glaube du hast ein vollkommen falsches Bild davon, was in deinem Rechner abläuft. Was meinst du mit "Mikrometer von Hand gemach worden"? Im BIOS ist auch kein Assembler drin, der versteckt sich da nicht oder so. Wenn das Bios startet, dann wird ein Selbsttest ausgeführt, bei dem grundsätzliche die CPU und bestimmte Caches getestet werden. Danach wird die Grafikkarte initialisiert. Darauffolgend werden eben nacheinander Teile der Hardware und Peripherie initialisiert und zum Schluß übernimmt ein Bootloader die Kontrolle und lädt dein Betriebssystem. Dabei wird natürlich Maschinencode ausgeführt.

Assembler musst du dir einfach nur als Repräsentation von dem 1010101 Maschinencode vorstellen, was in für Menchen lesbare Form gebracht wurde. Die Hardware kommuniziert aber nicht mit den direkten Assemblerbefehlen, sondern mit Binärcode.

Ich brauch ja auch kein BIOS, wenn ich hier nen kleinen 4bit Zähler über einen Decoder mit ner 7-Segment-Anzeige verbinde. Auf deutsch: wenn ich eine einstellige Digitalanzeige beschalte und hochzählen lasse. Dann geht Strom in den Zähler, der wandelt den Strom in ein binäres Signal an seinen vier Ausgängen, die gehen wiederum in vier Eingänge vom Decoder und er beschaltet dann halt über sieben Ausgänge die 7-Segment-Anzeige. Digitaltechnik halt.
11/19/2010 15:59 MrSm!th#18
Quote:
Originally Posted by GM-Hjacker View Post
Leute BIOS ist da damit der Computer übergaupt mal laäuft da ich glaube das im BIOS Assembler drin war (nicht sicher) oder vll Matrix atiges wie z.B 1001101001111 usw. aber aufjedenfall mit BIOS fing es an ich bin nicht doff!! Assembler ok vll stimmt nicht ganz aber da bin ich mir auch super sicher ist alles Mikrometer von Hand gemacht worden!!
hör bitte auf hier müll zu verbreiten
08/13/2011 21:02 Kent_Brockman#19
Quote:
Jo, aber wie haben die den ersten Assembler geschrieben frag ich mich immer
Den haben die wohl selbst in hex geschrieben, während sie die Opcodes entwickelt haben oder gibt es da ne andere möglichkeit?^^
Wenn du mal ne PDP programmiert hast dann erklärt sich das von selbst :P
Dort gabs nen Frontpanel wo du 3 Schalter je 4 Blöcke hattest.
Mit diesen hattest du dann dein Command eingegeben und daran die Parameter.
Wenn ich mich noch recht erinnere hattest du im ersten Block den Opcode reingehämmert und hinten kamen die Parameter.

Dann nen netten Deposit und schon ging der Zähler um 1 hoch, ab dann hatte man den nächsten Command reingehauen oder halt irgendwelche anderen Werte.

Wenn es jemanden Interessiert: PDP-11
Dort ist ein wenig beschrieben wie das Teil funzte, war aber im Prinzip nix anderes als Binäres eingeben.

Die Assembler kamen erst als man dann Schreibmaschine und Drucker an dem Computer angebunden hatte.
Denn erst jetzt war es möglich Daten in alphanumerischer Form in einen Computer zu quetschen.
Das war mit der PDP auch Praxis, jedoch musste man den Bootstraploader zumeist mit Lochband oder Magnetband einlesen und das ging häufig per Frontpanel, war dann das System oder Programm geladen und ermöglichte eine Ansteuerung per Termminal/Typewriter so brauchte man das FP nicht mehr und drehte den Schlüssel auf lock und schon konnte keiner mehr ohne den Schlüssel am FP herumspielen.

Hoffe das beantwortet ein paar Fragen...