| Zeile 545: | Zeile 545: | ||
| − | '''Anmerkung:''' Da der Code davon ausgeht, dass er am Anfang eines Segmentes steht, sollte man ihn mit einem geeigeneten Bootloader laden, der dies beachtet. Ein schlankes Beispiel wäre: | + | |
| + | '''Anmerkung 1:''' Da der Code davon ausgeht, dass er am Anfang eines Segmentes steht, sollte man ihn mit einem geeigeneten Bootloader laden, der dies beachtet. Ein schlankes Beispiel wäre: | ||
<asm>mov ax,cs | <asm>mov ax,cs | ||
| Zeile 556: | Zeile 557: | ||
sti | sti | ||
| − | mov ax,0x9000 | + | mov ax,'''0x9000''' |
mov es,ax | mov es,ax | ||
mov bx,0x0 | mov bx,0x0 | ||
| Zeile 567: | Zeile 568: | ||
int 13h | int 13h | ||
| − | jmp 0x9000:0x0 | + | jmp '''0x9000''':0x0 |
times 510-($-$$) db 0 | times 510-($-$$) db 0 | ||
dw 0aa55h</asm>© by PMTheQuick | dw 0aa55h</asm>© by PMTheQuick | ||
| − | + | Die beiden fett gedruckten 0x9000 können natürlich durch irgendeine andere Adresse ersetzt werden, jenachdem wohin man seinen Kernel laden will. Dann kann man die Dateien assemblieren + zusammenkopieren um ein funktionierendes Image zu erhalten: | |
| − | Dann die Dateien assemblieren + zusammenkopieren um ein funktionierendes Image zu erhalten: | ||
<pre>nasm -f bin -o kernel16.bin kernel16.asm | <pre>nasm -f bin -o kernel16.bin kernel16.asm | ||
nasm -f bin -o bootsec.bin bootsec.asm | nasm -f bin -o bootsec.bin bootsec.asm | ||
copy /B bootsec.bin + /B kernel16.bin PM_OS.img</pre> | copy /B bootsec.bin + /B kernel16.bin PM_OS.img</pre> | ||
| + | '''Anmerkung 2:''' Eine weitere, etwas weniger komplizierte Variante in den Protected Mode zu schalten wird [[Umschalten in Protected Mode|hier]] erklärt. | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||