码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统学习笔记与总结(二)

时间:2015-08-01 00:49:12      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

第二天总结

学习内容:寄存器(eflags,IDTR,GDTR,CR0),bootsect应用的相关知识及其流程,gdt

实验:实践boot相关功能,移动位置,加载扇区,建立gdt以及idt,进入实模式,跳转到gas编译的head第一条语句

总结:1,理论bootsect到setup

      a,被加载的bootsect移动到0x9000,借助int 0x13中断将setup加载到自身后面

      b,加载system到0x1000处,避免覆盖bios中断。之后跳到setup执行

   2.加载head代码

1     mov    dx, 0x0000            使drive=0 head=0 track=0 sector=2
2     mov    cx, 0x0002
3     mov    ax, #HEADSEG           es:bx确定目的地址
4     mov    es, ax
5     xor    bx, bx
6     mov    ax, #0X200+HEADLEN       ah读扇区功能号,al为读取的个数
7     int    0x13    

   3.移动加载的代码到0:0

   cli                      将if清零 关中断,将覆盖bios中断描述符表
    mov    ax, #HEADSEG             配置ds:si ->es:di
    mov    ds, ax
    xor    ax, ax
    mov    es, ax
    mov    cx, #0x0200
    sub    si, si
    sub    di, di
    rep    
    movw
eflags寄存器
                  vm rf 0 nt iopf of df if tf sf zf 0 af 0 pf 1 cf

   3,加载GDT和IDT的基址寄存器GDTR与IDTR

lidt    idt_48
lgdt    gdt_48

gdt:  .word 0,0,0,0                每一行为段描述符
    .word 0x07ff,0x0000,0x9a00,0x00c0    根据段描述符 基址 0x0000 0000 8mb长 代码段下一个为数据段
    .word 0x07ff,0x0000,0x9200,0x00c0

idt_48: .word 0
     .word 0,0
gdt_48: .word 0x7ff
     .word 0xfc00+gdt,0

 

段描述符结构
基地址(31-24)    属性
属性 基地址(23-16)   
段基址          15-0
段限长 15-0

 

 

 

 

 

 

idtr以及gdtr寄存器
32位线性基地址      16位表长度
32位线性基地址 16位表长度

    

 

 

 

IDTR以及GDTR分别记录着IDT以及GDT表的首地址。之后可以通过指定第几项来查找段的相关信息。

    4,进入实模式并跳转

   mov    ax,#0x0001
    lmsw    ax                  改变cr0寄存器pe位数值,进入保护模式
    jmpi    0, 8          8=1000 即执行gdt表第二项段描述符所指向的代码,也就是加载的head 同时ip=0
cr0寄存器
PG                                                                                                                 PE(一位)

当PE位置1时,进入保护模式,当PG置位启用分页基址

 

cs寄存器
 描述符(十三位)                                                    T (一位) RPL(两位 段基址限长属性(为隐藏部分)                                                                 

 

 

    8=1000 即 T=1 (在gdt中查找)  RPL=0(特权级为零)描述符为1代表是 gdt[1]之后即执行32位的指令

操作系统学习笔记与总结(二)

标签:

原文地址:http://www.cnblogs.com/starfarmingl/p/4693433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!