Hej allesammen.
Jeg har fundet ud af hvordan at jeg kan linke mine to Assembly filer sammen nu. Nu er problemet så bare at et jump til 0x0008:0x1000 (kernel.asm) triple fault'er min CPU.
Her er inholdet af min compiler.bat fil:
nasm -f bin bootloader.asm -o bootloader.bin
nasm -f elf kernel.asm -o kernel.elf
ld -Ttext 0x1000 -o kernel.o kernel.elf
objcopy -R .note -R .comment -S -O binary kernel.o kernel.bin
makeboot os.img bootloader.bin kernel.bin
Og her er min 32 bits 'protectedMode' funktion:
protectedMode:
mov ax, 0x0010
mov ds, ax
mov ss, ax
mov esp, 0x90000
mov edi, 0xb8000
jmp 0x0008:0x1000
Og her er kernel.asm:
[bits 32]
kernel:
mov edi, 0xb8000
mov byte [edi + 800], 'K'
mov byte [edi + 801], 0x0004
jmp $
Og her er fejlbeskeden fra Bochs, som kommer i bochsout.txt når den udfører jmp 0x0008:0x1000 i min 'protectedMode' funktion:
00074787617i[CPU0 ] 0x00000000b6bd7c52>> (invalid) : FFFF
00074787617e[CPU0 ] exception(): 3rd (13) exception with no resolution, shutdown status is 00h, resetting
Og lige til en information, så triple fault'er den ikke på vejen ind i protected mode, da det er blevet testet

.
Mange venlige hilsner
-Benjamin.
Indlæg senest redigeret d. 07.04.2010 14:36 af Bruger #15718