windows无盘启动技术开发之传统BIOS(Legacy BIOS)引导程序开发之二

by fanxiushu 2023-03-21 转载或引用请注明原始作者,

接上文,

这篇文章其实主要就是讲述上文中 Int13HookEntry 这个C函数的实现过程,

看起来就一个函数,可实现起来一点也不轻松。

首先得准备编译环境,因为是16位程序,所以得去找以前那种比较老的编译器,比如turboC,

当然,如果在linux下找到合适的16位编译环境,也是可以的。

传统BIOS的引导程序并不是windows的一部分,它可以在其他任何能支持16位交叉编译的操作系统上编译。

从上文的asm汇编代码片段,在调用 Int13HookEntry 函数之前,压栈了一堆的寄存器,ax,bx。。。cs,ds等等。

而在C代码中,总归是需要换算成对应的结构体,

如下,就是上文汇编代码压栈对应的结构体描述:

///INT13 的入口参数

struct int13_e

猜你喜欢

转载自blog.csdn.net/fanxiushu/article/details/129700446