通常至少入口点存根以及可能转换到真实内核需要在汇编中编写,因为它们涉及在C中无法表示的控制传递/调用约定约束.例如,如果引导加载程序需要初始化在堆栈可用之前指向ram的堆栈指针,如果没有笨拙的编译器扩展,这不能用C表示.但是,通常可以将写入的数量保持为非常小并且与这些类型的边界隔离.如果引导加载程序的其余部分也是用asm编写的,那通常表明作者很难评估成本(维护,错误等)与收益(可能更小的尺寸).
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |