32位PowerPC常用指令集总结高等教育工学_第1页
32位PowerPC常用指令集总结高等教育工学_第2页
32位PowerPC常用指令集总结高等教育工学_第3页
32位PowerPC常用指令集总结高等教育工学_第4页
32位PowerPC常用指令集总结高等教育工学_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,sthu,stwu一一对应,所不同的是D-Form使用的立行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间D(RA)语义:,sthu,stwu一一对应,所不同的是D-Form使用的立行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间D(RA)语义:ifRA=0thenb<-0elseb<-(atethenMaskInsert指令rlwimiRA,RS第一部分PowerPC精简指令集计算机(RISC)简介为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼由于我目前手上的开发板是基于e600内核,所以我在学习PowerPC指令集的过程中,顺便总结了e600内核常用的指令集,如果大家发现我总结的指令集有错误或者不准确的地方,第二部分e600指令集OPCD字段的不同,PowerPC的指令集分为以下几类。该类是无条件转移指令。0-56-293031OPCDLIAALKAA=0,表示LI中存放的是相对地址LI*4,基址是当前指令的地址AA=1,表示LI中存放的是绝对地址LI*4LK=1,表示转移到目的地址的同时,将当前指令的下一条指令存入LR寄存器LK=0,仅仅表示跳转到目的地址,而不用修改LR寄存器.6rlwinmrA,rS,24,8,31具体过程如下:0x1后的RS和RA6rlwinmrA,rS,24,8,31具体过程如下:0x1后的RS和RA的内容相或,放入RA中备注:MASK形成的规则就可以把一个立即数放到一个通用计算器中。例如:读取一个wor示的地址处bc4,2,BDBO[0]为0根据CR寄存器的相应将LK*4符号扩展到32为对应的真值为-0x4c,而当前指令的地址为0x1000056c,所以跳转因此如果想获得下一条指令的有效地址可以使用下面的汇编代码:2.2B-Form指令格式该类为有条件转移指令0-56-1011-15OPCDBOBIBDAALKbcBO,BI,BD//AA=0LK=0bcaBO,BI,BD//AA=1LK=0解释:AA和LK的含义同上,下面详细介绍一下BO,BI,BD字段的含义。BO[0]为1:表示根据CTR寄存器是否为0进行转移;为0:根据CR寄存器的相应字段和BI字段中的条件进行转移。为0:指定的条件为假时转移.在e600内核中,这些立即数的长度只能限制在16位。为了能顺构,比如上面的cmpi指令就用BF来指定CRn字段,一般而言D//AA=1LK=0bclBO,BI,BD//AA=0LKD字段的不同,PowerPC的指令集分为以下几类。在e600内核中,这些立即数的长度只能限制在16位。为了能顺构,比如上面的cmpi指令就用BF来指定CRn字段,一般而言D//AA=1LK=0bclBO,BI,BD//AA=0LKD字段的不同,PowerPC的指令集分为以下几类。2.1I-为0:CTR寄存器非0时进行条件转移BO[4]为1:bc指令将被判断为执行转移功能,处理器将预取转移指令目标地址后面的几条指令,并将预先取得的指令放入缓冲对列。为0:bc指令不被判断为执行转移功能,不预取转移指令目标地址后面的几条指令BI[0-2]的值n(n在0到7之间指出CR寄存器中的CRn字段的状态作为指令跳转条件BO[0]为1:表示根据CTR寄存器是否为0进行转移,和CR寄存器无关了;BO[3]为0:CTR寄存器为非0时进行条件转移;BO[4]为0:bc指令不被判断为执行转移功能,不预取转移指令目标地址后面的几条指令综上,该指令的意思是将CTR寄存器自减,如果CTR不为0则跳转到BD指示的地址处。可以使用指令助记符bdnzBD表示,CTR寄存器自减,如果CTR不为0则跳转到BD指示的地址处bc4,2,BDBO[0]为0根据CR寄存器的相应字段和BI字段在中的条件进行转移。BI[0-2]的值为0:指出CR寄存器中的CR0中的状态作为指令跳转条件综上,该指令的意思是说只有比较结果不等于0,就转移可以使用指令助记符:bneBD来代表bc4,2,BD。备注:目标地址是相对地址,还是绝对地址要看AA标识是否置位。),.8;最后0x00210000跟0x12005678相与,得到lseb=(RA)EA=b+extsign(D)RT=32个为8;最后0x00210000跟0x12005678相与,得到lseb=(RA)EA=b+extsign(D)RT=32个为0:bc指令不被判断为执行转移功能,不预取转移指令目标地址存器索引D:存放该指令需要的另一个立即数数据源该指令格式包含该指令一定包含一个立即数。0-55-1011-1516-31OPCDRS/RTRADRS/RT:存放该条指令运算结果的寄存器的索引RA:存放源数据的寄存器索引D:存放该指令需要的另一个立即数数据源1.对存储器或者寄存器进行读写的指令2.立即数的算术运算和逻辑运算指令RT=32个连续的0连上MEM(EA,4)MEM(EA,4表示从EA地址处取得32位数据该指令的目的就是将RA+D指定的地址中读取一个32位的数据,然后将此数据传递给RT和lwz指令想反,将寄存器RS中的32位数存到RA+D指向的内存单元处备注:立即数D参与的寻找计算,都需要将D符号扩展至32位。解释:将D+RA指向的内存单元的值放入RT索引的寄存器,然后将RA寄存器的值更新为RA+D备注:这两条指令可以实现数据栈的压栈和出栈操作,另外还有对8位和16位数据进行操介绍两条批处理指令LK的含义同上,下面详细介绍一下BO,BI,BDLK的含义同上,下面详细介绍一下BO,BI,BD字段的含义。I)thenc<-0b010//大于时设置CRn(1)为1e存放源操作数寄存器的索引RT字段存放目的操作数的索引;RA字SRARBMBMERc解释:类似于上一条指令,只是把左移的位EA<-b+EXTS(D)r<-RTEA<-EA+4解释:将RA+D地址处的数据依次传递到RT至31中,传递的32位数据量32-RT个解释:将RS至R31的(32-RS)个数据依次传递到RA+D指向的内容地址处。备注:使用这两个寄存器时要注意存储器的边界检查和所使用到的通用寄存器是否需要备n<-BF表示的数值将寄存器RA与立即数SI进行比较,然后将比较指令产生的状态放入CR寄存器的不同字解释一下CR寄存器,e600中32位CR寄存器用来存放指令执行之后的状态,该寄存器分各个字段CRn(n从0至7)都可以表示响应指令执行的结果:CR0(0用来表示LT(小于当整型指令运算结果为负时置1;CR0(1用来表示GT(大于当整型指令运算结果为正时置1;CR0(2用来表示EQ(等于当整型指令运算结果为0时置1;CR0(3用来表示SO(溢出当整型指令运算结果溢出时置1;.RA,UI和cmpli的指令的用法相同,所不同的是cmpli指令lwzRT,D(RA)语义:ifRA=0thenb=0e行测试,如果条件成立,则处理器进入系统的trap程序,然后对址处。备注:使用这两个寄存器时要注意存储器的边界检查和所使用寄存器的全部的CRn(n从0至7)来保存运算的结果。一般在比较指令cmp之后都会有一比如上面的cmpi指令就用BF来指定CRn字段,一般而言bcRA,UI和cmpli的指令的用法相同,所不同的是cmpli指令lwzRT,D(RA)语义:ifRA=0thenb=0e行测试,如果条件成立,则处理器进入系统的trap程序,然后对址处。备注:使用这两个寄存器时要注意存储器的边界检查和所使用备注:如果把立即数SI换成寄存器索引RB,则twTO,RA,RB就是X-Form形式。另外,D-Form指令包含了很多用于算术和逻辑运算的指令,这些指令都是需要一个立即数放进RA容放进RB.D//AA=1LK=0bclBO,BI,BD//AA=0LK始)存入RA中;2.6XL-Form指令XL-Form指令支字段值为D//AA=1LK=0bclBO,BI,BD//AA=0LK始)存入RA中;2.6XL-Form指令XL-Form指令支字段值为16bclrlBO,BI,BH//LK=1,21-3该指令称之为陷阱(trap)指令,该指令对一些Trap条件进E600中X-Form指令的数量最多,D-form指令的每一个指令在X-Form中都有对应的指令。X-Form的指令格式如下:0-56-1011-1516-2021-3031OPCDTS/RTRARBXORcX-Form的指令格式与D-Form指令格式:0-55-1011-1516-31OPCDRS/RTRAD相比,只是将D-Form指令中的D字段差分为RB,XO和Rc字段。X-Form中的RB和RS字段存放源操作数寄存器的索引RT字段存放目的操作数的索引;RA字段既可以存放源操作数寄存器的索引,而言可以存放目的操作数的索引;Rc字段置1表示当前指令的运算结果将改变CR寄存器中的相应CRn段,具有“.后缀的指令,其Rc位置1。典型的X-Form指令如下:指令等,这些指令和D-Form中的对应,所不同的是D-Form使用的立即数,换成了X-Form使用的寄存器索引。备注:该指令找出RS寄存器中从左边开始第一个不为0的位,然后将该位所在的位序(从0开始)存入RA中;2.6XL-Form指令XL-Form指令支持条件转移指令,与B-Form类条件转移指令:B-Form指令格式有条件转移指令0-56-10OPCDBO16-29BDAALK不同,该类指令使用LR寄存器或者CTR寄存器,而不适用16位的立即数作为跳转目标。XL-Form指令格式:0-56-1011-1516-1819-2021-3031OPCDBOBI~BH16或者528LK据CTR寄存器是否为0进行转移;为0:根据CR寄存器的相应字为0:bc据CTR寄存器是否为0进行转移;为0:根据CR寄存器的相应字为0:bc指令不被判断为执行转移功能,不预取转移指令目标地址d(0x12345678)到目的寄存器:lisRA,0x12A中的有符号数小于立即数SI(符合扩展之后),则处理器进程TX-Form类指令的BO,BI字段值和B-Form类中的BO,BI字段含义相同,LK置1表示跳转指令执行后,LR寄存器指向下一条指令的地址(当前指令地址+4BH字段用于静态分备注:XL-Form指令和I-Form指令协作完成指令的跳转XL-Form指令还可以支持CR寄存器不同段CRn的与,或,异或,同或操作,指令格式如0-56-10OPCDBTBA16-20BB21-3031crandBT,BA,BB//第21-30字段为257,BT<-BA&BBcrorBT,BA,BB//第21-30字段为449,BT<-BA|BB..tb,sth,stw,lbzu,lhzu,lwzu,stub四个bit位的含义如下:CR0(0):用来表示LT(小于),RS)的bit24-31,用以对立即数0x12345678(即数,换成了X-Form使用的寄存器索引。字节序列交换指令:crxorBT,BA,tb,sth,stw,lbzu,lhzu,lwzu,stub四个bit位的含义如下:CR0(0):用来表示LT(小于),RS)的bit24-31,用以对立即数0x12345678(即数,换成了X-Form使用的寄存器索引。字节序列交换指令:crnandBT,BA,BB//第21-30字段为255,BT<-BA&BB)mcrfBF,BFA//第21-30字段为0,将CR的BFA字段拷贝到BF字段2.7XFX-Form,XFL-Form,XS-Fomr,XO-Form类指令XFX-Form指令格式:0-56-1011-2021-30OPCDRTspr/tbrXO~XO-Form指令用来支持带进位的算术运算指令和乘除法指令格式:0-56-10OPCDRTRA16-20RB2122-3031OEXORc字段外,还可以将CA位参与运算;2.8M-Form指令M-Form指令主要作用是对选定的字段做循环左移,并做一些相应掩码操作,该类指令时PowerPC指令的精华,包含了一组非常强大的指令。rlwinmRA,RS,SH,MB,ME(Rc=0)0-56-1021RS11-1516-2021-2526-3031RASHMBMERc解释:寄存器RS的内容循环左移立即数SH位,然后跟立即数MB和ME形成的MASK相与后放进RAMASK形成的规则是,如果MB小于等于ME,则MB到ME之间的位全部置1,包括这两位,形成MASK;否则,MB到ME之间的位清0,其他位包括这两位置1,形成MASK。例子1:具体过程:0x12345678循环左移16位得到0x56781234,然后与MASK:0x0f00该指令可以用来抽取C语言代码或者寄存器中的位域。例子2:具体过程如下:0x12345678循环左移24位得到0x78123456,然后与MASK:0x00ff.是,如果MB小于等于ME,则MB到ME是,如果MB小于等于ME,则MB到ME之间的位全部置1,包括/高16位(0x1234)偏移16位后变成0x1234000这些指令和D-Form中的lbz,lhz,lha,lwz,s寄存器中的某个位域,然后对该位域进行赋值的操作。第三部分:总功能:该指令可以用来清除C语言代码或者寄存器中的位域。rlwnmRA,RS,RB,MB,ME(Rc=0)rlwnm.RA,RS,RB,MB,ME(Rc=1)0-56-1011-1516-2021-2526-303123RSRARBMBMERc类似于上一条指令,只是把左移的位数放到了寄存器RB中0-56-1020RSRASH21-25MB26-3031MERc解释:寄存器RS的内容循环左移立即数SH位,然后跟立即数MB和ME形成的MASK相与,再把RA的内容跟立即数MB和ME形成的MASK的补码相与,即清掉RA中MASK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论