简述c51语言和汇编语言兼容,汇编语言兼容性的问题、

本文探讨了Linux 2.6.10内核与Windows内核对于汇编语言的使用情况。在Linux内核中,尽管kernel目录下没有汇编语言文件,但在arch子目录下的特定架构如i386中,仍有36个汇编文件,主要用于引导代码、系统调用接口和协处理器模拟。相比之下,Windows内核也主要由C语言编写,对于桌面版,主要支持i386、amd64和ia64架构,汇编文件主要用于关键接口和特定平台的优化。
摘要由CSDN通过智能技术生成

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

HM3734840

2013.07.13

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:56%    等级:13

已帮助:12633人

其 kernel 基本上不是用汇编写的,而是 C。

#############################

[linux-2.6.10]$ cd kernel/

[kernel]$ find | grep -i \\.S

[kernel]$

############################

正如上面的命令执行结果可以看出, Linux 2.6.10 内核中 kernel 文件夹里边不包含任何汇编语言文件( .S 文件)。

Linux 把架构相关的文件都检出的

############################

[kernel]$ cd ../arch/

[arch]$ ls

alpha cris ia64 m68knommu ppc sh sparc64 x86_64

arm h8300 m32r mips ppc64 sh64 um

arm26 i386 m68k parisc s390 sparc v850

[arch]$

############################

在 arch 文件夹里边就才放着架构相关的东西了。有很多架构,我们桌面机一般用 i386 的架构。

###########################

[arch]$ cd i386/

[i386]$ find | grep -i \\.S

./boot/bootsect.S

./boot/compressed/head.S

./boot/compressed/vmlinux.scr

./boot/edd.S

./boot/install.sh

./boot/setup.S

./boot/video.S

./crypto/aes-i586-asm.S

./kernel/acpi/wakeup.S

./kernel/efi_stub.S

./kernel/entry.S

./kernel/head.S

./kernel/trampoline.S

./kernel/vmlinux.lds.S

./kernel/vsyscall-int80.S

./kernel/vsyscall-sigreturn.S

./kernel/vsyscall-sysenter.S

./kernel/vsyscall.S

./kernel/vsyscall.lds.S

./lib/checksum.S

./lib/getuser.S

./math-emu/div_Xsig.S

./math-emu/div_small.S

./math-emu/mul_Xsig.S

./math-emu/polynom_Xsig.S

./math-emu/reg_norm.S

./math-emu/reg_round.S

./math-emu/reg_u_add.S

./math-emu/reg_u_div.S

./math-emu/reg_u_mul.S

./math-emu/reg_u_sub.S

./math-emu/round_Xsig.S

./math-emu/shr_Xsig.S

./math-emu/wm_shrx.S

./math-emu/wm_sqrt.S

./power/swsusp.S

[i386]$

###########################

这里边才有汇编语言文件,用於 i386 的共有

###########################

[i386]$ find | grep -i \\.S | wc -l

36

[i386]$

###########################

嗯,才36个汇编文件。一部分是 boot 代码,还有系统调用及中断及异常的接口代码,剩下的大部分是协处理器模拟代码。

没人会为了速度而全用汇编写内核的(我除外,不过我只是做了个实模式的单任务的简单系统,所以才用纯汇编)。

桌面版Windows能够支持的架构不多,i386,amd64,ia64。其中 ia64 几乎已经放弃。amd64又兼容i386,所以桌面版Windows的移植性需求不高。但它的内核也几乎都是 C 写成的。看看 windows2000 泄露出来的代码就知道。

具体哪部分,我不是说了么:

嗯,才36个汇编文件。一部分是 boot 代码,还有系统调用及中断及异常的接口代码,剩下的大部分是协处理器模拟代码。

而且文件的列表都给出了,你没看么?

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值