`
thecloud
  • 浏览: 891578 次
文章分类
社区版块
存档分类
最新评论

Linux0.11内核--汇编代码实现C函数

 
阅读更多

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 0.11 内核源码 - 免费下载

    本代码是目前能够找到的最早的Linux的内核版本,Linux 0.11内核是Linux内核的早期版本,于1991年由Linus Torvalds编写并发布。作为一个基于UNIX的操作系统内核,它的源代码包含了核心代码和一些驱动程序。采用开源...

    linux-0.11-devel-060625.zip

    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.zip

    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-devel-040809.rar

    自己的linux-0.11编译开发环境,增加了nasm可执行文件,增加了dos软盘,虚拟机用的是bochs-2.1.1。

    linux0.11内核下载

    linux 0.11内核下载,linux 内核

    linux-0.11 内核原代码

    linux-0.11 内核原代码 linux-0.11 内核原代码 linux-0.11 内核原代码

    Linux0.11内核

    Linux0.11内核代码,对于学习内核的人来说,Linux0.11内核代码确实是个不错的选择。。

    windows下面编译linux-0.11内核

    windows下面编译linux-0.11内核 MinGW32 Bochs

    linux0.11内核源代码

    linux0.11内核源代码 linux0.11内核源代码 linux0.11内核源代码

    linux0.11-1+内核设计艺术2版+linux内核完全注释.rar

    linux内核完全注释根据linux0.11编写的。搭配内核设计的艺术2版,学习linux内核的神组合。学习内核建议从linux0.11看起,初始版本内容比较简单,但包含的都是内核的精髓。先上手,学到了方法,后面再看最新版本就更...

    Linux-0.11code-master.zip

    LINUX0.11内核源码 真男人就读源码

    linux-0.11.rar linux0.11版内核源代码 下载

    linux-0.11.rar linux0.11版内核源代码 下载

    Linux-0.11内核源代码

    Linux0.11内核源代码,这个版本的内核虽然简单,但是麻雀虽小五脏俱全,比较适合初学者....

    linux0.11内核源码

    linux 0.11 源码下载Linux0.11是Linux内核的早期版本之一,也是第一个可用的Linux内核版本。它的源代码是开放的,允许用户自由地阅读、修改和分发。它的开放源代码使得Linux0.11成为了计算机科学领域里的一个重要...

    linux 0.11内核源代码

    linux 0.11内核源代码 有注释 读linux 0.11内核源代码是学习和提高C语言编程能力的最佳途径 对以后其他语言的编程会有很大的帮助 几乎所有的优秀的编程人员都是通过此途径获得快速提高的

    linux0.11内核源代码.pdf

    linux0.11内核源代码.麻雀虽小,五脏俱全,linux内核的早期版本,学习LINUX内核的好东西!

    Linux 0.11 内核 源代码

    可结合赵炯著的Linux 0.11内核源代码注释进行学习,学习Linux的同学们可以下载进行学习。

    Linux内核0.11--------完全注解.rar

    Linux内核Linux内核0.11完全注解.rar0.11完全注解.rar

    linux-0.11-040327-rh9.diff.gz

    linux-0.11-040327-rh9.diff.gz

    Linux内核完全剖析基于0.11内核》--赵炯

    本书对早期的Linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和 说明,旨在让读者能够在短时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础。书中首先介绍了 ...

Global site tag (gtag.js) - Google Analytics