zoukankan      html  css  js  c++  java
  • ucore os 前初始化

    BIOS 初始化完成说起##

    连接的时候指定了 -Ttext 0x7c00 也指定了 -e start
    所以booasm.S 中的start 就呗钦定为程序入口了。

    开始就是 屏蔽中断 初始化段寄存器 使能A20
    加载段描述符表

    使用 ljmp 使用 选择子是0x8 跳转到protcseg (应该也加载到cs 寄存器中了)
    初始化段寄存器寄存器

    将0x10(kernel data segment seletor) 显示的(movw ) 加载到所有的寄存器中去

    初始化 %ebp=0(无意义的值)
    %esp=start (? start 的地址是0x7c00) 也就是栈的地址是 0--0x7c00

    调用 bootmain

    bootmain 读取elf 格式的 kernel,然后调用kernel的 entry 前初始化完成

  • 相关阅读:
    P1093 奖学金
    华容道
    回文数
    P1654 OSU!
    Noip P1063 能量项链
    Noip 寻宝
    NOIP 2009 普及组 第三题 细胞分裂
    拦截器
    OGNL
    Struts2 配置详解
  • 原文地址:https://www.cnblogs.com/sfzyk/p/8982351.html
Copyright © 2011-2022 走看看