仓酷云
标题:
Linux编程之Linux C内联汇编用法仓酷云
[打印本页]
作者:
精灵巫婆
时间:
2015-1-18 11:22
标题:
Linux编程之Linux C内联汇编用法仓酷云
在linux中学习命令的最好办法是学习Shell脚本编程,Shell脚本比起其他语言来学习简单,但是功能却十分强大.通过学习Shell编程,能让你掌握大量的linux命令。
Linux内核中有良多c中利用汇编的情形,好比原子操纵。内联汇编一般用上面的格局:
asm volatile("InstructionList":Output:Input:Clobber/Modify);
固然,大概写作以下格局(Output、Input、Clobber/Modify都是可选的),也就是三个冒号,4个部分:
asm volatile("InstructionList"
:Output
:Input
:Clobber/Modify);
为了了解便利,以屏障当地irq相干函数的代码为例子:
<p>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
staticinlineunsignedlongnative_save_fl(void)
{
unsignedlongflags;
/*
*"=rm"issafehere,because"pop"adjuststhestackbefore
*itevaluatesitseffectiveaddress--thisispartofthe
*documentedbehaviorofthe"pop"instruction.
*/
asmvolatile("#__raw_save_flagsnt"
"pushf;pop%0"
:"=rm"(flags)
:/*noinput*/
:"memory");
returnflags;
}
staticinlinevoidnative_restore_fl(unsignedlongflags)
{
asmvolatile("push%0;popf"
:/*nooutput*/
:"g"(flags)
:"memory","cc");
}
staticinlinevoidnative_irq_disable(void)
{
asmvolatile("cli":::"memory");
}
<p>staticinlinevoidnative_irq_enable(void
作者:
活着的死人
时间:
2015-1-20 22:23
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
作者:
谁可相欹
时间:
2015-1-22 18:28
我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。
作者:
简单生活
时间:
2015-1-31 07:54
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
作者:
小女巫
时间:
2015-2-3 12:13
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
作者:
第二个灵魂
时间:
2015-2-6 16:45
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
作者:
飘灵儿
时间:
2015-2-17 08:38
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
作者:
海妖
时间:
2015-2-21 06:30
学习Linux应具备的。[书籍+网络资源]
作者:
若相依
时间:
2015-3-6 19:45
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
作者:
不帅
时间:
2015-3-13 07:08
感谢老师和同学们在学习上对我的帮助。
作者:
莫相离
时间:
2015-3-20 16:10
直到学习Linux这门课以后,我才知道,原来我错了。?
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2