跟大师学习系统编程---操作系统加载(9)

来源:互联网 发布:ff14登陆网络传输异常 编辑:程序博客网 时间:2024/05/20 07:32

为保护模式做准备

X86保护模式编程需要用到全局描述符表和中断描述符表
加载中断描述符表和全局描述符表。
全局描述符和中断描述符的相关背景知识请参考xxx

! then we load the segment descriptorsend_move:    mov ax,#SETUPSEG    ! right, forgot this at first. didn't work :-)    mov ds,ax    lidt    idt_48      ! load idt with 0,0    lgdt    gdt_48      ! load gdt with whatever appropriate

让系统能寻址1M以上的内存

并开启A20地址线(在实模式下只能寻址1M的内存,在保护模式下需要寻址超过1M的内存,所以要把这个开关打开)。虽然打开的方式比较特别(通过键盘控制器),但仍然达到了目标。

! that was painless, now we enable A20    call    empty_8042    mov al,#0xD1        ! command write    out #0x64,al    call    empty_8042    mov al,#0xDF        ! A20 on    out #0x60,al    call    empty_8042
阅读全文
0 0
原创粉丝点击