Diskussion:Ausgabe 1
Aus Lowlevel
Version vom 9. April 2009, 11:23 Uhr von Jahen (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Die dargestellten Quelltexte von Kernel und Bootloader funktionieren auf meinem System (Pentium 4) erst, wenn ich 1. die Register es und ds am Anfang mit 0 initialisi...)
Die dargestellten Quelltexte von Kernel und Bootloader funktionieren auf meinem System (Pentium 4) erst, wenn ich
1. die Register es und ds am Anfang mit 0 initialisiere
org 0x7C00 ; Unsere Startadresse
mov ax, 0x0000
mov es, ax
mov ds, ax
- -----------------------------------------
- Unser Bootloader
- -----------------------------------------
...
2. den Reset des Diskettenlaufwerkes herausnehme
; Lade den Kernel vom Bootlaufwerk
load:
- Diskdrive reset (Interrupt 13h, 0)
- mov ax, 0 ; Die gewünschte Funktion (reset)
- mov dl, [bootdrv] ; Dieses Laufwerk ist gewünscht
- int 13h ; Den Interrupt ausführen
- jc load ; Geht nicht? -> Noch mal!
load1:
mov ax,0x1000 ; ES:BX = 0x10000
mov es,ax
...
Die Initialisierung der Register mit 0 sollte auf allen Prozessoren durchgeführt werden. Nach dem Reset des Diskettenlaufwerkes muss dieses ggf. anders initialisiert werden. Ist ein Reset überhaupt notwendig?