Protected Mode — Änderungen 2031 → 2033

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]]