Dieser OS loader / kernel funktioniert auf einem 8086 Emulator, jedoch NICHT auf einer echten Pentium-CPU: Wo liegt das Problem?
(Ich habe denselben programmiert, bevor ich auf das Lowlevel-Magazin gestossen bin)
1440k Raw-Floppy
Sektor 1 (Bootsektor bei 7C00):
ORG 7C00h
MOV BX, 9FF0h ; STACK IN 9FF00:0000 initialisieren
MOV SS, BX
MOV SP, 0
MOV AH, 00h
INT 13h
MOV AX, 0201h
MOV CX, 0002h
MOV DX, 0000h
MOV BX, 0050h
MOV ES, BX
MOV BX, 0000h
INT 13h
JMP 0050h:0000h
Sektor 2:
ORG 0000h
MOV AH, 00h
INT 13h
MOV AX, 0201h
MOV CX, 0003h
MOV DX, 0000h
MOV BX, 0052h
MOV ES, BX
MOV BX, 0
INT 13h
JMP 0052h:0000h
Sektor 3:
ORG 0000h
JMP start
msg_boot_complete DB 'xxxx 1.0.0001u', 13, 10, 'Copyright 2004 xxxxxx xxxxxxx', 13, 10, 'All rights reserved'
start
MOV BX, 0052h
MOV DS, BX
MOV AX, 0003h
INT 10h
MOV AX, 0600h
MOV BH, 00h
MOV CX, 0000h
MOV DH, 24
MOV DL, 79
INT 10h
MOV BX, DS
MOV ES, BX
MOV BP, msg_boot_complete
MOV AX, 1301h
MOV BX, 0000000000001111b
MOV CX, 66
MOV DX, 0000h
INT 10h
MOV AH, 00h
INT 16h
JMP start