用于 Power 体系结构的汇编语言,第 1 部分- 编程概念和基本 PowerPC 指令.docVIP

用于 Power 体系结构的汇编语言,第 1 部分- 编程概念和基本 PowerPC 指令.doc

  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文档。上传文档
查看更多
用于 Power 体系结构的汇编语言,第 1 部分- 编程概念和基本 PowerPC 指令.doc

  用于 Power 体系结构的汇编语言,第 1 部分: 编程概念和基本 PowerPC 指令   POicrosoft 的 Xbox 360 中。Cell Broadband Engine 是近来崭露头角的一种体系结构,使用 Podash; 固定范围内的数字,也称为字节(在大多数计算机上,这是一个 0 到 255 之间的数字)。每个存储单元都使用一个有序地址定位。设想一个庞大的空间,其中有许多信箱。每个信箱都有编号,且大小相同。这是计算机能够存储的惟一 内容。因此,所有一切最终都必须存 1234567下一页 ——感谢阅读这篇文章,..,储为固定范围内的数字。幸运的是,大多数处理器都能够将多个字节结合成一个单元来处理大数和具有不同取值范围的数字(例如浮点数)。但特定指令处理一块内存的方式与这样一个事实无关:每个存储单元都以完全相同的方式存储。除了内存按有序地址定位之外,处理器还维护着一组寄存器,这是容纳被操纵的数据或配置开关的临时位置。   控制处理器的基本过程就上获取-执行周期。处理器有一个称为程序计数器的寄存器,容纳要执行的下一条指令的地址。获取-执行的工作方式如下:   读程序计数器,从其中列出的地址处读取指令   更新程序计数器,使之指向下一条指令   解码指令   加载处理该指令所需的全部内存项   处理计算   储存结果   完成这一切的实际原理极其复杂,特别是 POdash; 它们一次只能执行一项(有时可能是为数不多的几项)操作。例如,在 C 语言中可以写 d = a + b + c - d + some_function(e, f - g),但在汇编语言中,每一次加、减和函数调用操作都必须使用自己的指令,实际上函数调用可能需要使用几条指令。有时这看上去冗长麻烦。但有三个重要的优点。第一,简单了解汇编语言能够帮助您编写出更好的高级代码,因为这样您就可以了解较低的级别上究竟发生了什么。第二,能够处理汇编语言中的所有细节这一事实意味着您能够优化速度关键型循环,而且比编译器做得更出色。编译器十分擅长代码优化。但了解汇编语言可帮助您理解编译器进行的优化(在 gcc 中使用 -S 开关将使编译器生成汇编代码而不是对象代码),并且还能帮您找到编译器遗漏的地方。第三,您能够充分利用 Por REGA, REGB   将 REGB 中的值复制到 REGA 中   or REGA, REGB, REGC   对 REGB 和 REGC 执行逻辑 或 运算,并将结果存储在 REGA 中   ori REGA, REGB, VALUE   对 REGB 和 VALUE 执行逻辑 或 运算,并将结果存储在 REGA 中   and, andi, xor, xori, nand, nand, and nor 编缉推荐阅读以下文章 用于 Power 体系结构的汇编语言,第 4 部分: 函数调用和 PowerPC 64 位 ABI 用于 Power 体系结构的汇编语言,第 3 部分: 使用 PowerPC 分支处理器进行编程 用于 Power 体系结构的汇编语言,第 2 部分: PowerPC 上加载和存储的艺术   其他所有此类逻辑运算都遵循与 or 或 ori 相同的模式   ld REGA, 0(REGB)   使用 REGB 的内容作为要载入 REGA 的值的内存地址   lbz, lhz, and lwz   它们均采用相同的格式,但分别操作字节、半字和字(z 表示它们还会清除该寄存器中的其他内容)   b ADDRESS    上一页1234567下一页 ——感谢阅读这篇文章,..,跳转(或转移)到地址 ADDRESS 处的指令   bl ADDRESS   对地址 ADDRESS 的子例程调用   cmpd REGA, REGB   比较 REGA 和 REGB 的内容,并恰当地设置状态寄存器的各位   beq ADDRESS   若之前比较过的寄存器内容等同,则跳转到 ADDRESS   bne, blt, bgt, ble, and bge   它们均采用相同的形式,但分别检查不等、小于、大于、小于等于和大于等于   std REGA, 0(REGB)   使用 REGB 的地址作为保存 REGA 的值的内存地址   stb, sth, and stdash; 没有其他指示符。   每条 Por 是 or 的特殊形式。这些扩展的记忆法有助于使 Po.s,在其中输入如下代码: 清单 1. 您的第一个 POory declarations  .data  .align 3 #align to 8-byte boundary 

文档评论(0)

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

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

1亿VIP精品文档

相关文档