当前位置: 技术问答>linux和unix
对Linux里的汇编不解?还请各位指点!
来源: 互联网 发布时间:2015-07-08
本文导语: 各位大哥,我听说编汇有很多种,并且跟特定的机器相关。好像它们之间也是不兼容的。 但好像在一些实时性要求特别高的地方,要用汇编写。 那想问一下,Linux的C代码中有些嵌入的汇编代码是用哪一种写的,什...
各位大哥,我听说编汇有很多种,并且跟特定的机器相关。好像它们之间也是不兼容的。
但好像在一些实时性要求特别高的地方,要用汇编写。
那想问一下,Linux的C代码中有些嵌入的汇编代码是用哪一种写的,什么它写的在所有的机器上都能运行呢?
还请各位指点一下!
但好像在一些实时性要求特别高的地方,要用汇编写。
那想问一下,Linux的C代码中有些嵌入的汇编代码是用哪一种写的,什么它写的在所有的机器上都能运行呢?
还请各位指点一下!
|
看到Linux的源代码树了没有?
Arch里面是和体系结构相关的,也就是说不同的体系结构就有不同的汇编。看到ASM目录了没有,每钟机器都有自己的ASM目录。Linux在编译的时候,有宏定义开关,控制是使用什么汇编来针对特定的机器。当然,我们使用的PC都是X86架构的,所以汇编其实是一样的。顶多就是格式不一样而已。所以,在X86上的程序,即使是汇编写的,基本上都能够在其他的PC机上跑
Arch里面是和体系结构相关的,也就是说不同的体系结构就有不同的汇编。看到ASM目录了没有,每钟机器都有自己的ASM目录。Linux在编译的时候,有宏定义开关,控制是使用什么汇编来针对特定的机器。当然,我们使用的PC都是X86架构的,所以汇编其实是一样的。顶多就是格式不一样而已。所以,在X86上的程序,即使是汇编写的,基本上都能够在其他的PC机上跑
|
汇编是与系统相关的
必须有相应的cpu指令
或者可以自己写出一种汇编语言来
但是你比需要写出相应的汇编解释器
解释成你的cpu所能够认出来的机器指令
必须有相应的cpu指令
或者可以自己写出一种汇编语言来
但是你比需要写出相应的汇编解释器
解释成你的cpu所能够认出来的机器指令
|
linux下面的汇编都是AT&T格式的,具体细节,可以参看
《linux内核源代码情景分析》浙江大学出版社,毛德操 胡希明
P21-P28,讲解的还算详细。。。。
《linux内核源代码情景分析》浙江大学出版社,毛德操 胡希明
P21-P28,讲解的还算详细。。。。
|
1。特定的机器是指特定的机器类型,比如我们用的i386,以及alpha等
2。特定的机器的机器语言只有一种。汇编语言与机器语言关系密切,几乎就是一对一的符号(说的不是很准确),i386的常用汇编语言个市主要有at&t和intel格式两种,linux的汇编和gcc的嵌入式汇编用的是at&t各式的(关于这at&t各式的区别,可以参考http://joyfire.net/jln/system/8.html#I206)
2。特定的机器的机器语言只有一种。汇编语言与机器语言关系密切,几乎就是一对一的符号(说的不是很准确),i386的常用汇编语言个市主要有at&t和intel格式两种,linux的汇编和gcc的嵌入式汇编用的是at&t各式的(关于这at&t各式的区别,可以参考http://joyfire.net/jln/system/8.html#I206)