《《Inline assembly for x86 in Linux_cn》.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《《Inline assembly for x86 in Linux_cn》.pdf

Linux中x86的内联汇编 /developerworks/cn/linux/sdk/assemb... 中文 登录 (或注册) 技术主题 软件下载 社区 技术讲座 Linux 中 x86 的内联汇编 将各个部分组合起来 BharataB.Rao(rbharata@)IBMLinux技术中心,IBM软件实验室,印度 简介:BharataB.Rao提供了在Linux平台上使用和构造x86内联汇编的概括性介绍。他介绍了内联汇编及其各种用法的基础知 识,提供了一些基本的内联汇编编码指导,并解释了在Linux内核中内联汇编代码的一些实例。 发布日期:2001年3月01日 级别:初级 访问情况 :4506次浏览 评论:0(查看|添加评论-登录) 平均分(7个评分) 为本文评分 如果您是Linux内核的开发人员,您会发现自己经常要对与体系结构高度相关的功能进行编码或优化代码路径。您很可能是通过将 汇编语言指令插入到C语句的中间(又称为内联汇编的一种方法)来执行这些任务的。让我们看一下Linux中内联汇编的特定用 法。(我们将讨论限制在IA32汇编。) GNU汇编程序简述 让我们首先看一下Linux中使用的基本汇编程序语法。GCC(用于Linux的GNUC编译器)使用ATT汇编语法。下面列出了这 种语法的一些基本规则。(该列表肯定不完整;只包括了与内联汇编相关的那些规则。) 寄存器命名 寄存器名称有%前缀。即,如果必须使用eax,它应该用作%eax。 源操作数和目的操作数的顺序 在所有指令中,先是源操作数,然后才是目的操作数。这与将源操作数放在目的操作数之后的Intel语法不同。 mov%eax,%ebx,transfersthecontentsofeaxtoebx. 操作数大小 根据操作数是字节(byte)、字(word)还是长型(long),指令的后缀可以是b、w或l。这并不是强制性的;GCC会尝试通过读取操 作数来提供相应的后缀。但手工指定后缀可以改善代码的可读性,并可以消除编译器猜测不正确的可能性。 movb%al,%bl--Bytemove movw%ax,%bx--Wordmove movl%eax,%ebx--Longwordmove 立即操作数 通过使用$指定直接操作数。 movl$0xffff,%eax--willmovethevalueof0xffffintoeaxregister. 间接内存引用 任何对内存的间接引用都是通过使用()来完成的。 movb(%esi),%al--willtransferthebyteinthememory 第1页共9页 2011/12/2412:15 Linux中x86的内联汇编 /developerworks/cn/linux/sdk/assemb... pointedbyesiintoal register 内联汇编 GCC为内联汇编提供特殊结构

文档评论(0)

qspd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档