实模式内核的16位C代码
发布时间:2020-12-16 07:35:30 所属栏目:百科 来源:网络整理
导读:我不知道如何为16位实模式编译我的C内核.我尝试了各种编译器,没有运气.我的引导程序只是从软盘(我的内核就在磁盘上的第一个扇区之后)加载原始扇区到物理内存地址1000h:0000h然后跳转到它.如何编译我的C内核以16位实模式工作? 我的基本内核: void OSmain()
我不知道如何为16位实模式编译我的C内核.我尝试了各种编译器,没有运气.我的引导程序只是从软盘(我的内核就在磁盘上的第一个扇区之后)加载原始扇区到物理内存地址1000h:0000h然后跳转到它.如何编译我的C内核以16位实模式工作?
我的基本内核: void OSmain() { unsigned char *videoram = (unsigned char *) 0xb8000; videoram[0] = 65; /* character 'A' */ videoram[1] = 0x07; /* forground,background color. */ while( 0 ) { } } 我尝试过的编译器是GCC,tinyCC和DMC.我的目标是得到一个平坦的二进制文件,我可以跳转到开始执行. 解决方法
首先,我建议您查看
OSDev Wiki,它有资源用于开发您自己的操作系统和组件.
其次,您是否考虑在程序集中编写一个以实模式启动,切换到保护模式,然后跳转到(32位)编译内核的引导加载程序? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |