发新话题
打印

系统初始化的问题

系统初始化的问题

我们知道系统初始化时先是实模式初始化,执行setup.s,然后是保护模式初始化,执行head.s,请问在setup.s执行结束,系统怎么切换到head.s里执行的?我在setup.s没有看到调用或者跳转语句阿!!
难道是连接器完成的工作?      

TOP

jmpi         0,8
这条语句是跳转语句.      

TOP

谢谢楼上兄弟,不过兄弟你说的是0.11版本的内核吧
我在看2.4.20内核时发现对这条语句作了修改如下

movw        $1, %ax                               
        lmsw        %ax                               
        jmp        flush_instr

flush_instr:
        xorw        %bx, %bx                       
        xorl        %esi, %esi                       
        movw        %cs, %si
        subw        $DELTA_INITSEG, %si
        shll        $4, %esi                       
小弟不明白要为什么这么改,对代码flush_instr也看不懂,谁能给解释一下执行到此处时,CS:IP的值是多少啊?      

TOP

发新话题