本文主要描述PPC的整数运算和跳转方面的指令,不涉及浮点7.docVIP

  • 51
  • 0
  • 约1.08万字
  • 约 17页
  • 2018-10-11 发布于江苏
  • 举报

本文主要描述PPC的整数运算和跳转方面的指令,不涉及浮点7.doc

本文主要描述PPC的整数运算和跳转方面的指令,不涉及浮点7

内部公开▲ 本文中的所有信息均为中兴通讯股份有限公司内部信息,不得向外传播 本文主要描述PPC的整数运算和跳转方面的指令,不涉及浮点数和系统指令如MMU、Cache、Exception等。 PPC的由来 1991年,IBM、Motorola、Apple联合定义了PowerPC 架构。 PowerPC的主要特点有: 采用RISC技术,同时引入少量复杂指令。这样降低计算机硬件设计复杂性,但对编译器和操作系统的要求更高; 应用并行指令(超标量)处理技术. 指令集和CPU硬件协调发展,编译器可以更好地调整指令, 发挥超标量处理的性能; 汇编指令集和编程语言结合得更好。 CISC是早先内存受限的条件下发展的, 因为复杂的指令带来代码的减少.但目前内存已经不是关键问题,解码复杂和执行时间长成了指令处理的瓶颈. 另外,IBM Berkely Stanford研究表明,如果指令集简单且大部分在一个周期内完成,运算性能会提高。因此采用RISC技术,可以降低指令复杂度,达到path length和cycle time number of cycles的平衡. 相关背景资料: HYPERLINK /books/proc/ppc/cwg/intro.html /books/proc/ppc/cwg/intro.html 详细介绍了PPC结构下编译器的指令调整技术。 PPC寄存器描述 为了方便指令流水线处理,PPC的汇编指令是等宽的,均为4字节,所以指令地址一定是4字节对齐的。 PPC的一个特点是定义了大量的通用寄存器,如用于整数运算和寻址的通用寄存器GPR0-GPR31(General-Purpose Registers)共32个。在ABI(Application Binary Interface)规范中,GPR1用于堆栈指针、GPR3-GPR4用于函数返回值、GPR3-GPR10用于函数参数传递。 用于浮点数运算的FPR0-FPR31(Floating-Point Registers)共32个,本文不做描述。 状态寄存器CR(Condition Register),用于反映运算结果、跳转判断条件等。分为如下8组: 每组4位,分别为LT(小于)、GT(大于)、EQ(等于)、SO(Summary overflow)。CR0默认反映整数运算结果、CR1默认反映浮点数运算结果。SO比较特殊,是XER寄存器SO位的拷贝。 对于比较指令,很容易理解LT、GT、EQ的含意;对于算术运算指令,结果为负数则为LT、正数GT、0为EQ。 XER寄存器,反映运算过程的异常信息: OV溢出;SO是溢出保存,一旦发生溢出OV置位后,SO也置位,除非指令清除之;CA进位。 Link Register 用于保存跳转指令的返回地址,也可以用于指定跳转的目标地址。 Counter Register 用于条件跳转时,进行减1判断非0或为0的条件,也可以用于指定跳转的目标地址。 PPC汇编语言说明 学习汇编可以提高一些调试效率,如在线修改代码:清除某一段代码、修改特定地址的常量、不执行某个函数、跳转到另一个函数等等。 学习汇编还可以深入理解编译器的实现,确认汇编实现和编程目的相同,对代码的正确性从另一个角度加以保证。 对于PPC的目编文件,可以用此命令: D:\Torandoppc20\host\x86-win32\bin\objdumpppc --debugging -D -l -t --show-raw-insn %1.o %1.txt 得到包含反汇编后的文件。如: TestFunc3(): D:\FP8270de-2005-0613-1621\default/D:/FP8270/FPS/src/FpsFpProc/source/Test.c:18TestFunc3 a8 63 00 00 lha r3,0(r3)TestFunc3+4 4e 80 00 20 blr 这样方便研读由c语言生成的汇编程序。 PPC一般采用大尾字节序,所以与X86相反,约定bit0为MSB、bit31为LSB。 PPC汇编中,WORD为32位,HALF WORD 为16位,BYTE为8位。 此外为方便学习PPC汇编,这里提供了一个小程序,用于显示汇编指令码的各个字段。 内存加载和保存指令 通过寄存器+立即数方式间接寻址: 相关Load Mem指令:lbz、lbzu、lha、lhau、lhz、lhzu、lwz、lwzu 指令格式: lbz 指令名称 操作码 英文解释 中文解释 lbz 34 Load Byte

文档评论(0)

1亿VIP精品文档

相关文档