Ich habe um das zu testen, mir von GRUB die Segment Register ausgeben lassen (per "sreg"). Herausgekommen ist dabei folgendes:
cs:s=0x0008, dh=0x00cf9a00, dl=0x0000ffff, valid=1
ds:s=0x0010, dh=0x00cf9200, dl=0x0000ffff, valid=1
ss:s=0x0010, dh=0x00cf9300, dl=0x0000ffff, valid=7
es:s=0x0010, dh=0x00cf9300, dl=0x0000ffff, valid=1
fs:s=0x0010, dh=0x00cf9300, dl=0x0000ffff, valid=1
gs:s=0x0010, dh=0x00cf9300, dl=0x0000ffff, valid=1
ldtr:s=0x0000, dh=0x00008200, dl=0x0000ffff, valid=1
tr:s=0x0000, dh=0x00008b00, dl=0x0000ffff, valid=1
gdtr:base=0x00104180, limit=0x2f
idtr:base=0x00000000, limit=0xffff
dh und dl sind vermutlich das dx register, doch was möchte Bochs damit sagen? Die Selektoren (Code- und Datensegment) scheinen zu stimmen, doch was sagt das dl, das dh und das valid dahinter?
Kann es sein, dass da was schief läuft wegen den verkorksten Werten in dh und dl?