| Zeile 9: | Zeile 9: | ||
=== Kernel - C === | === Kernel - C === | ||
Als erstes kannst du dir einen kleinen Test-Kernel ausdenken, oder einfach den hier benutzen: | Als erstes kannst du dir einen kleinen Test-Kernel ausdenken, oder einfach den hier benutzen: | ||
| − | <c> | + | <syntaxhighlight lang=c> |
int main() { | int main() { | ||
// Pointer zum Videospeicher | // Pointer zum Videospeicher | ||
| Zeile 33: | Zeile 33: | ||
return 0; | return 0; | ||
} | } | ||
| − | </ | + | </syntaxhighlight> |
=== Kernel - Assembler === | === Kernel - Assembler === | ||
Dieser Code macht eigentlich nichts anderes als in die main-Funktion unseres C-Kernels zu springen. | Dieser Code macht eigentlich nichts anderes als in die main-Funktion unseres C-Kernels zu springen. | ||
| − | <asm> | + | |
| + | <syntaxhighlight lang=asm> | ||
global loader ; loader für Linker sichtbar machen | global loader ; loader für Linker sichtbar machen | ||
extern main ; main-Funktion des C-Kernels | extern main ; main-Funktion des C-Kernels | ||
| Zeile 60: | Zeile 61: | ||
cli ; falls der Kernel bis hier her kommt, CPU anhalten | cli ; falls der Kernel bis hier her kommt, CPU anhalten | ||
hlt | hlt | ||
| − | </ | + | </syntaxhighlight> |
| + | |||
Der Code sollte eigentlich gut verständlich sein, trotzdem ist noch was zu klären: | Der Code sollte eigentlich gut verständlich sein, trotzdem ist noch was zu klären: | ||
* Die Flags können geändert werden, am besten schaut man sich die [[Multiboot]]-Spezifikation an. | * Die Flags können geändert werden, am besten schaut man sich die [[Multiboot]]-Spezifikation an. | ||