reference article

reference article

ID:37946342

大小:335.72 KB

页数:7页

时间:2019-06-03

reference article_第1页
reference article_第2页
reference article_第3页
reference article_第4页
reference article_第5页
资源描述:

《reference article》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、GCC内嵌汇编-刺猬小屋-博客频道-CSDN.NET页码,1/7首页业界移动云计算研发论坛博客下载更多您还未登录!

2、登录

3、注册

4、帮助刺猬小屋目录视图摘要视图订阅个人资料公告:CSDN搜索第二版正式上线!Hadoop与大数据精彩议题发布2000元大奖征异构开发博文CSDN博客频道搬家功能改版正式上线!【免费】解读海外市场营销奥秘CSDN博客频道推出TAG功能GCC内嵌汇编分类:OperatingSystem2008-04-0809:454508人阅读评论(1)收藏举报littlehedgehogGCC内嵌汇编刺猬@http://blog.csdn.

5、net/littlehedgehog访问:234690次积分:3868分排名:第1059名AT&T手册里面的,我整理了下,方便阅读原创:118篇转载:5篇译文:2篇评论:419条文章搜索内核代码绝大部分使用C语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码。GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计。文章分类简单的内嵌汇编很容易理解例如:C++(1)DataStructure(8)__asm____volatile__("hlt");LinuxKernel0.11(

6、12)LinuxKernel2.4/2.6(7)Masm&Nasm(9)OperatingSystem(36)“__asm__”表示后面的代码为内嵌汇编,“asm”是“__asm__”的别名。Unix/LinuxProgramming(31)“__volatile__”表示编译器不要优化代码,后面的指令保留原样,WindowsSDK(7)“volatile”是它的别名。括号里面是汇编指令。随笔(22)文章存档使用内嵌汇编,要先编写汇编指令模板,然后将C语言表达式与指令的操作数相关联,并告诉GCC对这些操作有哪2011年06月(1)些限制条

7、件。例如在下面的汇编语句:[下段解释一定要耐着性子看懂读懂!]2010年10月(1)2010年04月(1)__asm____violate__("movl%1,%0":"=r"(result):"m"(input));2009年04月(3)2009年02月(2)“movl%1,%0”是指令模板;“%0”和“%1”代表指令的操作数,称为占位符,内嵌汇编靠它们将C语言表达式与指令操作数相对应。指令模板后面用小括号括起来的是C语言表达式,本例中只有两个:“result”和“input”,他阅读排行们按照出现的顺序分别与指令操作数“%0”,“%1,”对应

8、;注意对应顺序:第一个C表达式对应“%0”;第二我看UNIX与Windows的本个表达式对应“%1”,依次类推,操作数至多有10个,分别用“%0”,“%1”….“%9,”表示。在每个操作数前(27351)Linux内核高端内存管理面有一个用引号括起来的字符串,字符串的内容是对该操作数的限制或者说要求。“result”前面的限制字符串是(7962)多重继承和虚继承的内存布局“=r”,其中“=”表示“result”是输出操作数,“r”表示需要将“result”与某个通用寄存器相关联,先将操作数的(7813)我对读计算机软件专业硕值读入寄存器,然后在指

9、令中使用相应寄存器,而不是“result”本身,当然指令执行完后需要将寄存器中的值存入(6801)虚拟机ubuntu与XP的文件共享变量“result”,从表面上看好像是指令直接对“result”进行操作,实际上GCC做了隐式处理,这样我们可以少写(6207)Linux网卡设备驱动(5809)一些指令。“input”前面的“r”表示该表达式需要先放入某个寄存器,然后在指令中使用该寄存器参加运算。Clamav杀毒软件源码分析(5620)Clamav杀毒软件源码分析(5557)异步信号安全和线程安全(5534)Clamav杀毒软件源码分析(5491)

10、下面来看看一个内嵌汇编的小例子:http://blog.csdn.net/littlehedgehog/article/details/22596652012/11/24GCC内嵌汇编-刺猬小屋-博客频道-CSDN.NET页码,2/7评论排行externintinput,result;我看UNIX与Windows的本(192)重言式判别(数据结构课(18)富人和穷人的区别voidtest(void)(18)Intel手册申请攻略{(14)自己动手写操作系统读书笔记input=1;(14)保护模式下寻址(13)__asm____volatile__

11、("movl%1,%0":我对读计算机软件专业硕(11)"=r"(result):"r"(input));虚拟机ubuntu与XP的文件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。