第4章 进入保护模式(设置GDT全局描述符表)

本文详细介绍了进入保护模式的过程,特别是如何配置GDT(全局描述符表),以实现更高级别的系统安全和多任务处理。通过学习,读者将掌握保护模式的关键概念和C语言实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进入保护模式的步骤是:

1、关中断;
2、打开A20地址线,使之能访问1M以上的内存;
3、设置GDT; GDT知识可查看《Intel微处理器 第8版》p541 也可以查看 Intel开发手册
4、加载GDT;
5、进入保护模式,跳转到setup.s


boot.s的源代码如下所示
    .text
    .global  start
    .include "kernel.inc"
    .code16
start:
    jmp $0x0, $code
msg:
    .string "1kos booting......\x0"
code:
    movw    $0xb800,%ax        #显存地址在0xb8000
    movw    %ax,    %es        
    xorw    %di,    %di        #es:di = 0xb8000
    xorw    %ax,    %ax
    movw    %ax,    %ds        #ds:si = msg
    movw    $msg,   %si
    cld                #si和di自增
    movb    $0x07,  %ah        #字符属性:黑底白字

    #打印msg信息
print_c:
    cmp        $0x0,   (%si)
    je        load
    lodsb            #ds:[si] -> al, ++si
    stosw            #ax -> es:[di], di += 2  #al=字符 ah=属性
    jmp        print_c


    #读取kernel到0x7e00上
load:
    #设置临时栈
    xorw    %ax,    %ax
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值