Sure: if the disk is correctly partitioned, the BIOS will boot it without a BPB. The BIOS authors don't want to boot a disk that isn't bootable.liwinux wrote:But aren't BIOSes supposed to continue executing code even if there is no BPB ?
Interrupts use the stack. If an interrupt happens in the middle of setting up your stack, you don't know where the stack will be and it could overwrite your code.liwinux wrote:I guess this sould now be better, but why should we disable interrupts and re-enable them after setting up the stack ?
Perhaps it's because 0x8000 is not 0x9000.liwinux wrote:I'm still not able to hit my code after loading it memory adress 0x9000.Code: Select all
mov bx, 0x8000 [...] ljmp 0x0000:0x8000
This instruction is five bytes, but there are only three bytes available before the start of the BPB.liwinux wrote:Code: Select all
ljmp 0x0000:_init
Is there any particular reason you're using ".value" instead of ".byte"?liwinux wrote:Code: Select all
.value 0