Bit: "Binary digIT" = Binäre Einheit. Speichert 0 oder 1
Byte: 8 Bit zusammengefasst. "Wortlänge" auf heutigen Rechnern
Register: Speicher im Prozessor
Befehlszähler: Register, das auf den nächsten Maschinenbefehl im
Speicher zeigt
"Random Access Memory", Hauptspeicher.
Binär kodierter Befehl, der direkt vom Prozessor ausgeführt werden kann.
"Interrupt": Unterbricht die Programmausführung, um Routinen des Betriebssystems auszuführen. Es gibt 3 Arten:
0 | Division durch 0 |
1 | Einzelschritt-Ausführung (Debugger) |
3 | Breakpoint (Debugger) |
4 | Variablen-Überlaufsprüfung fehlgeschlagen |
5 | Array-Bereichsprüfung fehlgeschlagen |
6 | Ungültiger Befehl |
7 | Kein Coprozessor vorhanden |
8 | Fehlerhafter Interrupt-Aufruf |
12 | Stack-Fehler |
13 | Allgemeine Schutzverletzung |
16 | Coprozessor-Fehler |
Ein 32-Bit-Rechner hat einen 32-Bit-Adressbus, kann also biz zu 4GB Speicher linear ansprechen.
Der Prozessor (CPU)
Ein Assembler übersetzt Assemblercode in ausführbaren Code. Assemblercode sind einfache Befehle, die direkt in Maschinenbefehle umgesetzt werden können.
Interpreter | Führt ein Programm, das im Quellcode vorliegt, direkt aus |
Compiler | Übersetzt Quellcode in Maschinencode |
Binder (Linker) | Bindet mehrere Objektdateien und Bibliotheken zu einem ausführbaren Programm zusammen. Objektdateien sind der vom Compiler erzeugte Maschinencode incl. Informationen fü Linker und Debugger |
Lader | Lädt ein Programm von der Platte in den Arbeitsspeicher und startet es. |
#include <math.h> // in C++: #include <cmath> int main() { double d = sqrt (10); }Was ist
math.h
? Welchen Bezug haben math.h
und
sqrt
? Wo ist der Code der sqrt
-Funktion in welcher
Form zu finden?Eine Include-Datei enthält
double sqrt(double);
typedef struct _file_t { .... } file_t;
typedef unsigned int HANDLE;
#define MAX_USERS 100
const int pi = 3.14;
const char *LINUX_PENGUIN_NAME;
math.h
steht unter anderem der Prototyp für
sqrt
. Der Code fü sqrt
befindet sich
ausnahmsweise nicht in einer math.c
der libc-Quellen, da es
sich um einen Befehl handelt, der normalderweise von der FPU direkt
unterstützt wird. daher findet sich aus Performancegründen im Prototyp von sqrt
ein Aufruf der Form __ieee
irgendwas, der die FPU direkt anspricht.