发布时间:2012-12-20 14:20:57
在进入保护模式后,head.s程序重新建立和设置IDT,GDT表的主要原因是为了让程序在结构上比较清晰,也是为了与后面的linux 0.11内核源代码中这两个表的设置方式保持一致,当然。就本程序来说我们完全可以直接使用boot.s中设置的IDT和GDT表位置,填入适当的描述符即可。##LATCH = 11930 #定时器初始计数值SCRN_SEL = 0x18 #屏幕显示内存段选择符TSS0_SEL = 0x20 #任务0的TSS段选择符LDT0_SEL = 0x28 #任务0的LDT段选择符TSS1_SEL = 0x30 #任务1的TSS段选择符LD......【阅读全文】
发布时间:2012-12-11 11:14:19
x86寄存器说明ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用......【阅读全文】