如何阻止BIOS(BPB)覆盖部分引导加载程序?

时间:2017-08-17 14:45:37

标签: assembly nasm bootloader bios

我一直在写一个有点基本的bootloader,它就像bochs中的桃子一样。但是,在我的实际机器上,一些指令被扰乱并且引导加载程序失败。我已经诊断出这种疾病,但治愈效果不好。似乎BIOS(兼容模式下的UEFI,顺便说一下)正在寻找一个Bios参数块(BPB),找不到一个(因为我没做一个),并且蛮横地覆盖了某些字节,从而弄乱了bootloader 。我目前修复它的方法是通过保留(归零)程序的前50个字节来启动我的程序集

resb 50

然而,这不是一个好的解决方案。考虑到引导加载程序只有512字节,这是一个巨大的空间浪费。大约有10%的空间浪费了!所以这是我的问题:

有没有更好的方法来绕过/停止/禁用BIOS来覆盖引导加载程序的部分?从引导加载程序中获取最多字节数的最佳方法是什么?

1 个答案:

答案 0 :(得分:-3)

尝试使用线性帧缓冲区并修改显示起始地址以进行缓冲。公共文件:来自vesa dot org的vbe3.pdf(注册/登录)