The instruction "mov [boot_drv], dl" will fail because at this point the DS register holds the value 07C0h!
The file "KERNEL.ASM" is compiled by FASM using an implicit "ORG 0". This is fine, but since the loader has put this program at the segmented address 1000h:0000h you still have to initialize the DS segment register to 1000h.
Alternatively write the following:
Code:
push cs
push cs
pop ds ;Here DS becomes 1000h
pop es
mov [boot_drv], dl
The instruction "mov [boot_drv], dl" will fail because at this point the DS register holds the value 07C0h! The file "KERNEL.ASM" is compiled by FASM using an implicit "ORG 0". This is fine, but since the loader has put this program at the segmented address 1000h:0000h you still have to initialize the DS segment register to 1000h. Alternatively write the following:
Code: