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...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation,

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?