2.2.1 Vom Quellcode zum Prozessor

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:


Nach dem Start der vom Compiler erzeugten ausführbaren Datei wird der sogenannte Programmtext in den Hauptspeicher ([[Speicherwerk]]) geladen. Der Programmtext enthält die tatsächlich von der CPU ausführbaren Befehle, es handelt sich um die sogenannte Maschinensprache.
Nach dem Start der vom Compiler erzeugten ausführbaren Datei wird der sogenannte Programmtext in den Hauptspeicher ([[Speicherwerk]]) geladen. Der Programmtext enthält die tatsächlich von der CPU ausführbaren Befehle, es handelt sich um die sogenannte Maschinensprache.
<loop_area type="sourcecode">'''C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):'''<br />
<br />00110000100100001101001100010101000011100010001101011000111001000011111110000000
</loop_area>
<loop_area type="sourcecode">'''C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):'''<br />
<br />00110000100000000100001101000000001100010100000001000011100000000010001101000000011000111000000001000011110000001110000000000000
</loop_area>
<loop_area type="sourcecode">'''C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):'''<br />
<br />0011000010000000<br />0100001101000000<br />0011000101000000<br />0100001110000000<br />0010001101000000<br />0110001110000000<br />0100001111000000<br />1110000000000000
</loop_area>
<loop_area type="sourcecode">'''C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):'''<br />
<loop_area type="sourcecode">'''C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):'''<br />
<br />0011000010<br />0100001101<br />0011000101<br />0100001110<br />0010001101<br />0110001110<br />0100001111<br />1110000000
<br />0011000010<br />0100001101<br />0011000101<br />0100001110<br />0010001101<br />0110001110<br />0100001111<br />1110000000

Version vom 21. August 2013, 17:08 Uhr

Du kennst doch Quellcode, oder?
Quellcode in einer Hochsprache wie Java, C oder Pascal. Hier ist in diesen drei Sprachen mal ein ganz einfaches Programm codiert:

Code

Quellcode in Java:


public class Addierer {
    public static void main(String[] args) {
        int a = 2;
        int b = 5;
        int c = a + b;
    }
}

Code

Quellcode in C:


void main(void) {
    int a = 2;
    int b = 5;
    int c = a + b;
}

Code

Quellcode in Pascal:


PROGRAM Addierer;
VAR
    a, b, c: Integer
BEGIN
    a := 2;
    b := 5;
    c := a + b;
END.

Dieses Programm ist sehr einfach zu verstehen:

  • Es werden drei Variablen deklariert.
  • Der ersten Variablen a wird der Wert 2 zugewiesen.
  • Der zweiten Variablen b wird der Wert 5 zugewiesen.
  • Die dritte Variable bekommt ihren Wert zugewiesen als Ergebnis der Addition der Varaiablen a und b.

In C oder Pascal wird nun der Compiler auf den Quellcode angesetzt und heraus kommt eine ausführbare Datei. Bei dem Java-Quelltext sieht es etwas anders aus, da hier der Compiler nicht direkt eine ausführbare Datei erzeugt, sondern zunächst nur eine Datei mit sogenannten Bytecode, der später interpretiert wird. Wir beschränken uns in der weiteren Betrachtung deshalb auf C und Pascal.

Nach dem Start der vom Compiler erzeugten ausführbaren Datei wird der sogenannte Programmtext in den Hauptspeicher (Speicherwerk) geladen. Der Programmtext enthält die tatsächlich von der CPU ausführbaren Befehle, es handelt sich um die sogenannte Maschinensprache.

Code

C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):


00110000100100001101001100010101000011100010001101011000111001000011111110000000

Code

C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):


00110000100000000100001101000000001100010100000001000011100000000010001101000000011000111000000001000011110000001110000000000000

Code

C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):


0011000010000000
0100001101000000
0011000101000000
0100001110000000
0010001101000000
0110001110000000
0100001111000000
1110000000000000

Code

C- oder Pascal-Quelltext übersetzt in Maschinensprache (Programmtext):


0011000010
0100001101
0011000101
0100001110
0010001101
0110001110
0100001111
1110000000

Code

Übersetzt in Assembler:


LOAD #2
STORE 13
LOAD #5
STORE 14
LOAD 13
ADD 14
STORE 15
HALT




Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png