Linux0.11内核中有很多函数都是在C语言里面声明,然后通过汇编来实现。例如/kernel/blk_drv/hd.c中函数中声明
extern void hd_interrupt (void);
但是其他C代码中没有实现,找了好久,终于知道它在汇编代码中实现了。
下面自己写了个简单的实例来证实
test.c代码
shixain.s代码
假如没有shixian.s代码,编译test.c会报错
test.c: In function ‘main’:
test.c:8: warning: format ‘%x’ expects type ‘unsigned int’, but argument 2 has type ‘void (*)(void)’
test.c:9: warning: format ‘%x’ expects type ‘unsigned int’, but argument 2 has type ‘void (*)(void)’
test.c:10: warning: format ‘%x’ expects type ‘unsigned int’, but argument 2 has type ‘void (*)(void)’
/tmp/ccqsI4JA.o: In function `main':
test.c:(.text+0x15): undefined reference to `test1'
test.c:(.text+0x29): undefined reference to `test2'
test.c:(.text+0x3d): undefined reference to `test3'
collect2: ld returned 1 exit status
但是加入汇编实现代码
命令:
as -gstabs -o shixian.o shixian.s
gcc -c -o test.o test.c
gcc -o result test.o shixian.o
编译生成可执行文件result
运行./result
结果:
0x8048440
0x8048443
0x8048446
注:在mingW下GCC和早期Linux版本下GCC,将汇编中的函数标号前加上_(一个下划线),而在如今的linux GCC下已不再加上_
分享到:
相关推荐
本代码是目前能够找到的最早的Linux的内核版本,Linux 0.11内核是Linux内核的早期版本,于1991年由Linus Torvalds编写并发布。作为一个基于UNIX的操作系统内核,它的源代码包含了核心代码和一些驱动程序。采用开源...
linux-0.11-devel-060625.ziplinux-0.11-devel-060625.ziplinux-0.11-devel-060625.ziplinux-0.11-devel-060625.ziplinux-0.11-devel-060625.ziplinux-0.11-devel-060625.ziplinux-0.11-devel-060625.ziplinux-0.11-...
linux-0.11-devel-050518.ziplinux-0.11-devel-050518.ziplinux-0.11-devel-050518.ziplinux-0.11-devel-050518.ziplinux-0.11-devel-050518.ziplinux-0.11-devel-050518.ziplinux-0.11-devel-050518.ziplinux-0.11-...
自己的linux-0.11编译开发环境,增加了nasm可执行文件,增加了dos软盘,虚拟机用的是bochs-2.1.1。
linux 0.11内核下载,linux 内核
linux-0.11 内核原代码 linux-0.11 内核原代码 linux-0.11 内核原代码
Linux0.11内核代码,对于学习内核的人来说,Linux0.11内核代码确实是个不错的选择。。
windows下面编译linux-0.11内核 MinGW32 Bochs
linux0.11内核源代码 linux0.11内核源代码 linux0.11内核源代码
linux内核完全注释根据linux0.11编写的。搭配内核设计的艺术2版,学习linux内核的神组合。学习内核建议从linux0.11看起,初始版本内容比较简单,但包含的都是内核的精髓。先上手,学到了方法,后面再看最新版本就更...
LINUX0.11内核源码 真男人就读源码
linux-0.11.rar linux0.11版内核源代码 下载
Linux0.11内核源代码,这个版本的内核虽然简单,但是麻雀虽小五脏俱全,比较适合初学者....
《Linux 0.11内核完全注释》
linux 0.11内核源代码 有注释 读linux 0.11内核源代码是学习和提高C语言编程能力的最佳途径 对以后其他语言的编程会有很大的帮助 几乎所有的优秀的编程人员都是通过此途径获得快速提高的
linux0.11内核源代码.麻雀虽小,五脏俱全,linux内核的早期版本,学习LINUX内核的好东西!
可结合赵炯著的Linux 0.11内核源代码注释进行学习,学习Linux的同学们可以下载进行学习。
Linux内核Linux内核0.11完全注解.rar0.11完全注解.rar
linux-0.11-040327-rh9.diff.gz
本书对早期的Linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和 说明,旨在让读者能够在短时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础。书中首先介绍了 ...