⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 start.c

📁 参照MINIX3写的操作系统 用GCC+NASM+BOCHS开发
💻 C
字号:
#include "include/start.h"

//进行一些初始化工作
PUBLIC void CStart()
{
	t_16 *p_gdt_limit;  
    	t_16 *p_idt_limit;  
	t_32 *p_gdt_base;   
	t_32 *p_idt_base; 
	int i=0;
	//将就GDT复制到新的GDT
	clear();
    	printk("**********CStart()**********\n");
	MemoryCopy(&gdt,(void*)(*((t_32*)(&gdt_ptr[2]))),*((t_16*)(&gdt_ptr[0])));
	//重新设置GDT的基地址和限长
    	p_gdt_limit  =   (t_16*)(&gdt_ptr[0]);
    	p_gdt_base    =   (t_32*)(&gdt_ptr[2]);
    	*p_gdt_limit =   GDT_SIZE*sizeof(DESCRIPTOR);
	*p_gdt_base   =   (t_32)&gdt;
	//设置IDT的基地址和限长
    	 p_idt_limit =   (t_16*)(&idt_ptr[0]);
     	p_idt_base    =   (t_32*)(&idt_ptr[2]);
	*p_idt_limit = IDT_SIZE*sizeof(GATE);
	*p_idt_base   = (t_32)&idt;
	//初始化8259A,异常,中断,
	InitIrq();
	//关所有中断
	//OutByte(INT_M_CTLMASK,0xFF);
	//OutByte(INT_S_CTLMASK,0xFF);	printk("**********CStart()  FINISH**********\n");
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -