Assembler und Windows
Verfasst: 04.10.2021, 20:36
Abend zusammen :-)
Ich arbeite derzeit ein Tutorial durch, zum Thema Assembler auf dem 6502 Chip. Genauer gesagt, ist es ein Tutorial zur Assembler-Programmierung auf dem ATARI 2600 :-)
Ich hatte bislang noch nie etwas mit Assembler gemacht - und durch diese Auseinandersetzung mit der für mich neuen Thematik konnte ich nun einige neue Erkenntnissen gewinnen - also auch genereller Natur, unabhängig vom 6502 Chip.
Es hat aber auch, wie zu erwarten, einige neue Fragen aufgeworfen.
Wenn ich es denn richtig verstanden habe, lässt sich Assembler-Code 1:1 in "binären Prozessor-Code" übersetzen. Das heisst, es gibt für jeden Befehl in der entsprechenden Assembler-Sprache eine 1:1 Entsprechung als binären OP Code - was ja bei einer höheren Programmiersprache wie C nicht der Fall ist.
Wenn ich nun C-Code kompiliere, wird dann in jedem Fall zuerst Assembler-Code erzeugt? Oder erfolgt dieser Zwischenschritt nur auf verlangen?
Unabhängig davon, liegt ja am Ende des Prozesses Maschinencode vor. Also Maschinencode für z. B. den Atari oder eben die X86 Architektur.
Müsste dann ein Programm nicht universell auf allen X86 Plattformen laufen? Egal ob Linux, Windows oder OSX?
Wieso ist das nicht der Fall? An diesem Punkt fehlt mir gänzlich die Vorstellung, wie das Betriebssystem hier rein spielt.
Ist in diesem Maschinencode irgendwie doch mehr enthalten, als alleinige Instruktionen für die CPU? Also "Anweisungen" für ein spezifisches Betriebssystem? Erhalte ich denn anderer Assembler-Code, wenn ich für Windows kompiliere, als wenn ich für Linux kompiliert hätte?
Gruss und schönen Abend, starcow
Ich arbeite derzeit ein Tutorial durch, zum Thema Assembler auf dem 6502 Chip. Genauer gesagt, ist es ein Tutorial zur Assembler-Programmierung auf dem ATARI 2600 :-)
Ich hatte bislang noch nie etwas mit Assembler gemacht - und durch diese Auseinandersetzung mit der für mich neuen Thematik konnte ich nun einige neue Erkenntnissen gewinnen - also auch genereller Natur, unabhängig vom 6502 Chip.
Es hat aber auch, wie zu erwarten, einige neue Fragen aufgeworfen.
Wenn ich es denn richtig verstanden habe, lässt sich Assembler-Code 1:1 in "binären Prozessor-Code" übersetzen. Das heisst, es gibt für jeden Befehl in der entsprechenden Assembler-Sprache eine 1:1 Entsprechung als binären OP Code - was ja bei einer höheren Programmiersprache wie C nicht der Fall ist.
Wenn ich nun C-Code kompiliere, wird dann in jedem Fall zuerst Assembler-Code erzeugt? Oder erfolgt dieser Zwischenschritt nur auf verlangen?
Unabhängig davon, liegt ja am Ende des Prozesses Maschinencode vor. Also Maschinencode für z. B. den Atari oder eben die X86 Architektur.
Müsste dann ein Programm nicht universell auf allen X86 Plattformen laufen? Egal ob Linux, Windows oder OSX?
Wieso ist das nicht der Fall? An diesem Punkt fehlt mir gänzlich die Vorstellung, wie das Betriebssystem hier rein spielt.
Ist in diesem Maschinencode irgendwie doch mehr enthalten, als alleinige Instruktionen für die CPU? Also "Anweisungen" für ein spezifisches Betriebssystem? Erhalte ich denn anderer Assembler-Code, wenn ich für Windows kompiliere, als wenn ich für Linux kompiliert hätte?
Gruss und schönen Abend, starcow