80386的分段机制、分页机制和物理地址的形成
1
2 3 4 5 |
#define__KERNEL_CS0x10
//内核代码段,index=2,TI=0,RPL=0 #define__KERNEL_DS0x18 //内核数据段,index=3,TI=0,RPL=0 #define__USER_CS0x23 //用户代码段,index=4,TI=0,RPL=3 #define__USER_DS0x2B //用户数据段,index=5,TI=0,RPL=3 |
1
2 3 4 5 6 7 8 9 10 |
ENTRY(gdt_table)
.quad0x0000000000000000 /*NULLdescriptor*/ .quad0x0000000000000000 /*notused*/ .quad0x00cf9a000000ffff /*0x10kernel4GBcodeat0x00000000*/ .quad0x00cf92000000ffff /*0x18kernel4GBdataat0x00000000*/ .quad0x00cffa000000ffff /*0x23user4GBcodeat0x00000000*/ .quad0x00cff2000000ffff /*0x2buser4GBdataat0x00000000*/ .quad0x0000000000000000 /*notused*/ .quad0x0000000000000000 /*notused*/ |