- 博客(12)
- 资源 (6)
- 收藏
- 关注
原创 如何使用编程的方法--创建1.44兆软盘镜像的几种方法。。。(之二 汇编)
第二种情况:我们可以用汇编语言。原理跟前面的一样。在这不再赘述。nasm实现版times 1474560 - ($ - $$) db 0 将上面的文件保存为makeboot.asm然后编译 nasm -f bin makeboot.asm -o fkix.img 即可。以下是在我的机子上的实际操作。C:/DOCUME~1/ADMINI~1>vim makeboot.as
2010-04-30 22:15:00 1133
原创 如何使用编程的方法--创建1.44兆软盘镜像的几种方法。。。(之一 C语言法)
首先先分析以下一块1.44兆软盘镜像占多少个字节。我查到的数据是1474560。不过,我始终不明白这是怎么算出来的?如果有谁知道,请指教。其实一个软盘镜像就是一个1.44兆的文件。只要你有办法生成一个1.44兆的文件。那么一个软盘镜像就算完成。原理懂了。接下来,我们来实现它吧。第一种方法:c语言法#include int main(){ long i; for (i=0; i pri
2010-04-30 21:58:00 1626
原创 set_base 和 set_limitC语言实现版
在重建系统的时候发现linux-0.11原来这两个宏函数经常出错,迫不得已。改写了这两个函数。extern inline void set_base(void * addr, unsigned long base){ *((char *)addr+2) = (short) base; base >>= 16; *((char *)addr+4) = (char) base; base >>= 8
2010-04-30 21:52:00 1168
原创 分享《C语言教程》Al.Kelley Ira Pohl 著 一个有趣的例子吧。。。
c编译器把函数名本身当做指针看待 #include void f(void);void g(void);void h(void);int main(void){ (*(*f))(); return 0;}void f(void){ printf("hello from f()./n"); (*(*(*(*(*(*(*(*g))))))))();}void g(void
2010-04-30 21:33:00 1096
原创 用nasm语言重新实现linux-0.11 键盘驱动程序(us)(博古以通今) (开发版,未精简)
;文件名:followking/kernel/chr_drv/keyboard.s;本文件改写linux-0.11/kernel/chr_drv/keyboard.s;目的是为了体验整个系统构建的过程。;作者:hk0625;开始时间: 2010年04月25日星期日 12:57 ;完成时间: 2010年04月25日星期日 22:48(完成);最后修改时间: 2010年04月26日星期一 21:18;
2010-04-26 22:38:00 1673 6
原创 8259芯片的初始化-在重现linux-0.11遇到的问题 (博古以通今)
/*文件名:followking/include/asm/io.h*本文件改写linux-0.11/inlcude/asm/io.h,目的是为了体验整个系统构建的过程。*作者:hk0625*开始时间: 2010年03月28号星期天 15:22*完成时间: 2010年03月28号星期天 15:42(完成)*最后修改时间: 2010年03月29号星期一 11:50*调试完成时间: 2010年04月09
2010-04-25 18:59:00 1221
原创 用nasm语言重新实现linux-0.11 asm.s(博古以通今)
;文件名:followking/kernel/asm.s;本文件改写linux-0.11/kernel/asm.s,目的是为了体验整个系统构建的过程。;作者:hk0625;开始时间: 2010年03月26号星期五 18:47 ;完成时间: 2010年03月31号星期三 15:53(完成);最后修改时间: 2010年04月20日星期二 23:51:;地点: 北京化工大学郁夫图书馆文法阅览室小圆桌;E
2010-04-25 18:57:00 1131
原创 Makefile 文件
AS86 =nasm LD86 =ld -s AS =asLD =ldLDFLAGS =-x -MCC =gcc CFLAGS =-Wall -g -nostdinc -Iinclude -O -fno-builtin CPP =gcc -E -nostdinc -IincludeARCHIVES=mm/mm.o kernel/kernel.o fs/fs.oLIBS =lib
2010-04-25 18:54:00 585
原创 给出一个printk函数的实现版本(用于早期调试用)
它有三部分组成。vsprintf,printk,debug.s中mywrite函数。其中vsprintf函数是linux实现我调试后拿来使用,对这个函数的调试可用gdb来调。呵呵,mywrite则是我自己写的。呵呵,改了很多次了。我把所有原件不加修改的发上来,以期可以看到系统开发的真实过程吧。/*文件名:followking/include/stdarg.h*本文件改写linux-0.11
2010-04-25 18:44:00 1548
原创 nasm重写linux-0.11 head.s (博古以通今)
;文件名:followking/boot/head.s;本文件改写linux-0.11/boot/head.s,目的是为了体验整个系统构建的过程。;我是看着赵炯《Linux内核0.11完全注释》编写的。不过,我是编写代码,有疑问再看。;我用的nasm的语法格式。我想写一个操作系统,现在觉得最简单的方式莫过于;先把前辈的实现的东西重新实现一遍。等到对这个问题有更深刻认识的时候,;再重新思考,写出有自
2010-04-25 18:39:00 2502
原创 用nasm语言重新实现linux-0.11 setup.s (博古以通今)
;文件名:followking/boot/setup.s;本文件改写linux-0.11/boot/setup.s,目的是为了体验整个系统构建的过程。;我是看着赵炯《Linux内核0.11完全注释》编写的。不过,我是编写代码,有疑问再看。;我用的nasm的语法格式。我想写一个操作系统,现在觉得最简单的方式莫过于;先把前辈的实现的东西重新实现一遍。等到对这个问题有更深刻认识的时候,;再重新思考,写出
2010-04-25 18:37:00 1618 2
原创 用nasm语言重新实现linux-0.11 bootsect.s(博古以通今)
;这个程序是改写linux的bootsect.s。我用的nasm的语法格式。昨天刚学,今天学完。所以想马上运用一下。;我想写一个操作系统,现在觉得最简单的方式莫过于先把前辈的实现的东西重新实现一遍。等到对这个;问题有更深刻认识的时候,再重新思考,写出有自己特色的系统。;作者:hk0625;开始时间: 2010年03月18日星期四 21:00 ;完成时间: 2010年03月19日星期五 20:55(
2010-04-25 18:31:00 3054 4
linux0.11采用nasm重写汇编代码部分
2011-01-27
The Fundamentals Linux Programming by Example
2010-09-27
《unix操作系统设计》(有书签,中文版)
2010-05-08
计算机组成原理课后解答(唐朔飞)
2009-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人