- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PowerPC编指令集
PowerPC汇编指令集
标签:?汇编??指令??PowerPC??PPC?2008-05-04 21:25
PowerPC?体系结构规范(PowerPC Architecture Specification)发布于?1993?年,它是一个?64?位规范?(?也包含?32?位子集?)。几乎所有常规可用的?PowerPC(除了新型号?IBM RS/6000?和所有?IBM pSeries?高端服务器)都是?32?位的。
PowerPC?处理器有?32?个(32?位或?64?位)GPR(通用寄存器)以及诸如?PC(程序计数器,也称为IAR/指令地址寄存器或?NIP/下一指令指针)、LR(链接寄存器)、CR(条件寄存器)等各种其它寄存器。有些?PowerPC CPU?还有?32?个?64?位?FPR(浮点寄存器)。MPC555使用的PowerPC CPU是带有FPR的。一些常用寄存器介绍如下:
通用寄存器的用途:
r0 在函数开始(function prologs)时使用。
r1 堆栈指针,相当于ia32架构中的esp寄存器,idapro把这个寄存器反汇编标识为sp。
r2 内容表(toc)指针,idapro把这个寄存器反汇编标识为rtoc。系统调用时,它包含系统调用号(这个好像跟系统有关吧)。
r3 作为第一个参数和返回值。
r4-r10 函数或系统调用开始的参数。
r11 ?用在指针的调用和当作一些语言的环境指针。
r12 ?它用在异常处理和glink(动态连接器)代码。
r13 ?保留作为系统线程ID。
r14-r31?作为本地变量,非易失性。
专用寄存器的用途:
lr 链接寄存器,它用来存放函数调用结束处的返回地址。
ctr ?计数寄存器,它用来当作循环计数器,会随特定转移操作而递减。
xer ?定点异常寄存器,存放整数运算操作的进位以及溢出信息。
msr ?机器状态寄存器,用来配置微处理器的设定。
cr 条件寄存器,它分成8个4位字段,cr0-cr7,它反映了某个算法操作的结果并且提供条件分支的机制。
寄存器r1、r14-r31是非易失性的,这意味着它们的值在函数调用过程保持不变。寄存器r2也算非易失性,但是只有在调用函数在调用后必须恢复它的值时才被处理。
寄存器r0、r3-r12和特殊寄存器lr、ctr、xer、fpscr是易失性的,它们的值在函数调用过程中会发生变化。此外寄存器r0、r2、r11和r12可能会被交叉模块调用改变,所以函数在调用的时候不能采用它们的值。
条件代码寄存器字段cr0、cr1、cr5、cr6和cr7是易失性的。cr2、cr3和cr4是非易失性的,函数如果要改变它们必须保存并恢复这些字段。
在AIX上,svca指令(sc是PowerPC的助记符)用来表示系统调用,r2寄存器指定系统调用号,r3-r10寄存器是给该系统调用的参数。在执行系统调用指令之前有两个额外的先决条件:LR寄存器必须保存返回系统调用地址的值并且在系统调用前执行crorc cr6, cr6, cr6指令(?)。
应用程序二进制接口(ABI)
从技术而言,开发人员可以将任一?GPR?用于任何操作。例如,由于不存在:“堆栈指针寄存器”,为此程序员就可以使用任何寄存器。实际上,定义一组约定很有用,这样二进制对象就可以与不同的编译器和预先编写好的汇编代码进行互操作。
调用约定是由使用的?ABI(应用程序二进制接口)决定的。ppc32 Linux?和?NetBSD?实现使用SVR4(System V R4)ABI,而?ppc64 Linux?仿效了?AIX,使用?PowerOpen ABI。ABI?还指定当调用子例程时哪些寄存器被认为是易失型的(调用者保存(caller-save))以及哪些被认为是非易失型的(被调用者保存(callee-save)),以及许多其它内容。
SVR4 ABI?指定了一些行为的具体示例:
-由于?PowerPC?拥有如此多的?GPR(32?个,而相比之下?IA32?只有?8?个),所以传递参数的寄存器从gpr3?开始。
-寄存器?gpr3?到?gpr12?是易失型的(调用者保存)寄存器,如果需要的话,在调用子例程之前必须先保存它们并在返回之后恢复它们。?-寄存器 gpr1 用来作为栈帧指针。
指令格式
PowerPC
指令包括操作码和操作数两部分,PowerPC支持三操作数的指令格式。如算术指令:
add rD,rA,rB
表示把(rA)+(rB)的和存放到rD寄存器中。
注意:
指令中的点号“.”表示:指令将更新条件寄存器CR0。如add. rD,rA,rB。
指令中的字母“c”表示:指令显示说明结果影响XER寄存器中的进位位[CA],如addc rD,rA,rB。
指
您可能关注的文档
- php基础语法数组和数组指针.docx
- php基础语法数组和数组遍历.docx
- PIC单片机的2C 24LC02 C读写程序.doc
- PING命令入详解及应用举例.docx
- Ping命令的用大全.doc
- Pizezo喷器(压电式喷油器).doc
- PLC S7-00400的编程语言与指令系统.doc
- PKPM设计参分析详解.doc
- PLC全自动洗机控制系统设计.doc
- PLC内外部结及编程软件的使用试题及答案.doc
- 8 黄山奇石(第二课时)课件(共22张PPT).pptx
- 22《纸船和风筝》教学课件(共31张PPT).pptx
- 17 松鼠 课件(共23张PPT).pptx
- 23《海底世界》课件(共28张PPT).pptx
- 21《大自然的声音》课件(共18张PPT).pptx
- 第12课《词四首——江城子 密州出猎》课件 2025—2026学年统编版语文九年级下册.pptx
- 第2课《济南的冬天》课件(共42张PPT) 2024—2025学年统编版语文七年级上册.pptx
- 17 跳水 第二课时 课件(共18张PPT).pptx
- 第六单元课外古诗词诵读《过松源晨炊漆公、约客》课件 统编版语文七年级下册.pptx
- 统编版六年级语文上册 22《文言文二则》课件(共27张PPT).pptx
最近下载
- TCACM 009-2016元胡止痛片优质产品质量标准.pdf VIP
- 声乐正谱伴奏 黑雾 降E.pdf VIP
- 三年(2023-2025)高考地理真题分类汇编:专题12 交通(全国通用)(原卷版).docx VIP
- 2025至2030智能道路检测车行业发展趋势分析与未来投资战略咨询研究报告.docx
- 内科三基试题(含参考答案).docx VIP
- 中国建设工程鲁班奖(国家优质工程)复查工作准则(试行).pdf VIP
- 手术室感染暴发应急预案与处置流程查房.pptx VIP
- 凝结水混床树脂和普通混床树脂性能指标.doc VIP
- 军事理论全部题库及答案.doc
- 2025年宠物鲜食配行业发展趋势分析报告.docx VIP
原创力文档


文档评论(0)