当前位置:首页 >> 信息与通信 >>

32位PowerPC常用指令集总结


32 位 PowerPC 常用指令集总结 精简指令集计算机(RISC)简介 第一部分 PowerPC 精简指令集计算机 简介 PowerPC 体系结构是一种精减指令集计算机(Reduced Instruction Set Computer,RISC)体 系结构,定义了 200 多条指令。PowerPC 之所以是 RISC,原因在于大部分指令在一个单 一的周期内执行,而且通常只执行

一个单一的操作(比如将内存加载到寄存器,或者将寄存 器数据存储到内存) 。 PowerPC 体系结构分为三个级别 (或者说是“book”) 通过对体系结构以这种方式进行划分, 。 为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼 容性。 Book I. 用户指令集体系结构(Power ISA User Instruction Set Architecture) 定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指令,为 大多数程序所用。 Book II. 虚拟环境体系结构(Power ISA Virtual Environment Architecture) 定义了常规应用软件要求之外的附加的用户级功能, 比如高速缓存管理、 原子操作和用户级 计时器支持。 虽然这些操作也是非特权的, 但是程序通常还是通过操作系统调用来访问这些 函数。 Book III. 操作环境体系结构(Power ISA Operating Environment Architecture) 定义了操作系统级需要和使用的操作。其中包括用于内存管理、异常向量处理、特权寄存器 访问、特权计时器访问的函数。Book III 中详细说明了对各种系统服务和功能的直接硬件支 持。 由于我目前手上的开发板是基于 e600 内核,所以我在学习 PowerPC 指令集的过程中,顺便 总结了 e600 内核常用的指令集,如果大家发现我总结的指令集有错误或者不准确的地方, 欢迎留言指出来,O(∩_∩)O~ 第二部分 e600 指令集 飞思卡尔的 e600 内核实现了 booke 内核构架中 64 位指令集的中的 32 位指令 (即在 e600 的 32 位寄存器中,第 0 位相当于 booke 中的 64 寄存器的第 32 位,第 31 位相当于 booke 中 64 寄存器的第 63 位)E600 内核采用大端编码方式, , 指令的第 0 位是 MSB (Most Significant Bit) 位,第 31 位是 LSB(Least Significant Bit) 。 e600 内核指令的高 6 位字段(第 0-5 位)被称为 OPCD 字段(Primary Opcode Field) ,根据 OPCD 字段的不同,PowerPC 的指令集分为以下几类。 2.1 I-form 指令格式 该类是无条件转移指令。 0-5 6-29 30 31 OPCD LI AA LK AA=0,表示 LI 中存放的是相对地址 LI*4,基址是当前指令的地址 AA=1,表示 LI 中存放的是绝对地址 LI*4 LK=1,表示转移到目的地址的同时,将当前指令的下一条指令存入 LR 寄存器 LK=0,仅仅表示跳转到目的地址,而不用修改 LR 寄存器 例如: b LI//AA=0, LK=0 解释:跳转到目的地址:LI*4+当前指令的地址

ba LI//AA=1,LK=0 解释:跳转到:LI*4 bl LI//AA=0,LK=1 解释:跳转到目的地址:LI*4+PC,同时把 PC+4 放入 LR 寄存器 备注:PC 放的是当前指令的地址。 bla LI//AA=1,LK=1 解释:跳转到目的地址:LI*4,同时把 PC+4 放入 LR 寄存器

给出一段汇编指令示例: 0x1000051c <print> …… 0x10000568:4b ff ff ff b5 对应汇编:bl 10000051c<print> 0x1000056c:38 00 00 00 对应汇编:li r0,0 解释: bl 10000051c<print>对应的机器指令为: 4b ff ff ff b5,其中的 LK=0xed。 将 LK*4 符号扩展到 32 为对应的真值为-0x4c,而当前指令的地址为 0x1000056c,所以跳转 的目标地址就是 0x1000056c+(-0x4c)=0x1000051c 即为 print 函数的入口地址。 因此如果想获得下一条指令的有效地址可以使用下面的汇编代码: bl invstr //将当前指令的下一条指令 PC+4 放入 LR 寄存器 invstr:mflr r6 //将 LR 寄存器的内容放入 r6 寄存器中 2.2 B-Form 指令格式 该类为有条件转移指令 0-5 6-10 11-15 16-29 30 31 OPCD BO BI BD AA LK 包含下面 4 条指令: bc BO, BI, BD //AA=0 LK=0 bca BO, BI, BD //AA=1 LK=0 bcl BO, BI, BD //AA=0 LK=1 bcla BO, BI, BD //AA=1 LK=1 解释:AA 和 LK 的含义同上,下面详细介绍一下 BO,BI,BD 字段的含义。 BO 字段:从 6 位至 10 位,共 5 bit: BO[0]为 1:表示根据 CTR 寄存器是否为 0 进行转移; 为 0:根据 CR 寄存器的相应字段和 BI 字段中的条件进行转移。 BO[1]为 1:指定的条件为真时转移 为 0:指定的条件为假时转移 BO[2]为 1:执行 bc 指令时,CTR 寄存器保持不变 为 0:执行 bc 指令时,CTR 寄存器自减

BO[3]为 1:CTR 寄存器为 0 时进行条件转移 为 0:CTR 寄存器非 0 时进行条件转移 BO[4]为 1:bc 指令将被判断为执行转移功能,处理器将预取转移指令目标地址后面的几条 指令,并将预先取得的指令放入缓冲对列。 为 0:bc 指令不被判断为执行转移功能,不预取转移指令目标地址后面的几条指令

BI 字段(11-15bit)的功能: BI[0-2]的值 n(n 在 0 到 7 之间) :指出 CR 寄存器中的 CRn 字段的状态作为指令跳转条件 BI[3-4]的值表述指令跳转条件,具体如下: 00 使用 LT(小于)状态作为指令的转移条件 01 使用 GT(大于)状态作为指令的转移条件 10 使用 EQ(等于)状态作为指令的转移条件 11 使用 SO(溢出)状态作为指令的转移条件 BD 字段(16-29bit) :指出转移的目标地址 现在我们给我几个例子: bc 16,0,BD 解释: BO[0]为 1:表示根据 CTR 寄存器是否为 0 进行转移,和 CR 寄存器无关了; BO[2]为 0:执行 bc 指令时,CTR 寄存器自减; BO[3]为 0:CTR 寄存器为非 0 时进行条件转移; BO[4] 为 0:bc 指令不被判断为执行转移功能,不预取转移指令目标地址后面的几条指令 综上,该指令的意思是将 CTR 寄存器自减,如果 CTR 不为 0 则跳转到 BD 指示的地址处。 可以使用指令助记符 bdnz BD 表示,CTR 寄存器自减,如果 CTR 不为 0 则跳转到 BD 指示 的地址处 bc 4,2,BD BO[0]为 0 根据 CR 寄存器的相应字段和 BI 字段在中的条件进行转移。 BO[1]为 0:指定的条件为假时转移 BO[2]为 1:执行 bc 指令时,CTR 寄存器保持不变 BI[0-2]的值为 0:指出 CR 寄存器中的 CR0 中的状态作为指令跳转条件 BI[3-4]的值为 10:使用 EQ(等于)状态作为指令的转移条件 综上,该指令的意思是说只有比较结果不等于 0,就转移 可以使用指令助记符:bne BD 来代表 bc 4,2,BD。 备注:目标地址是相对地址,还是绝对地址要看 AA 标识是否置位。 常用的指令助记符 lt(小于), le(小于等于),eq(等于),so(溢出) ,+(转移被静态预测 为真,选择转移) ,-(转移被静态预测为假,不选择转移)等等。 在 Powerpc 指令集中常用的条件转移指令只有 bc,bcl,以前的转移指令 beq,ndnz,ble 等 等都是助记符。 2.3 SC-Form 指令 该指令主要用来实现系统调用,只有“sc”这一条汇编,比较简单

2.4 D-Form 指令 该指令一定包含一个立即数。 指令格式如下: 0-5 5-10 11-15 16-31 OPCD RS/RT RA D RS/RT:存放该条指令运算结果的寄存器的索引 RA:存放源数据的寄存器索引 D:存放该指令需要的另一个立即数数据源 该指令格式包含两类: 1. 对存储器或者寄存器进行读写的指令 2. 立即数的算术运算和逻辑运算指令 典型指令如下: 2.4.1 Load Word and Zero 指令 lwz RT, D(RA) 语义: if RA=0 then b=0 else b=(RA) EA=b+extsign(D) RT=32 个连续的 0 连上 MEM(EA,4) 解释: extsign(D):表示 D 符合扩展到 32bit(因为 D 是 16 bit,参与运算的是 32bit) MEM(EA,4) :表示从 EA 地址处取得 32 位数据 该指令的目的就是将 RA+D 指定的地址中读取一个 32 位的数据,然后将此数据传递给 RT 寄存器。 此外还有对 16 bit 和 8 bit 进行操作的 lhz,lbz 指令 2.4.2 STore Word 指令 stw RS, D(RA) 和 lwz 指令想反,将寄存器 RS 中的 32 位数存到 RA+D 指向的内存单元处 备注:立即数 D 参与的寻找计算,都需要将 D 符号扩展至 32 位。 2.4.3 Load Word and Zero with Update 指令 lwzu RT,D(RA) 解释:将 D+RA 指向的内存单元的值放入 RT 索引的寄存器,然后将 RA 寄存器的值更新为 RA+D 2.4.5 Store Word with Update 指令 stwu RS,D(RA) 同 lwzu 相反。 备注:这两条指令可以实现数据栈的压栈和出栈操作,另外还有对 8 位和 16 位数据进行操 作的指令 lbzu,stbu 和 sthu,lhzu 指令,格式通上。 2.4.6 介绍两条批处理指令 Load Multiple Word 指令:

lmw RT,D(RA) 语义: if RA = 0 then b <- 0 else b <-(RA) EA <-b + EXTS(D) r <-RT do while r ≤ 31 GPR(r) <- 32 个连续 0 || MEM(EA, 4) //||表示字符串的连接,例如 a||b 就是 ab r <- r + 1 EA <- EA + 4 endwhile 解释:将 RA+D 地址处的数据依次传递到 RT 至 31 中,传递的 32 位数据量 32-RT 个 Store Multiple Word 指令 stmw RS,D(RA) 解释:将 RS 至 R31 的(32-RS)个数据依次传递到 RA+D 指向的内容地址处。 备注:使用这两个寄存器时要注意存储器的边界检查和所使用到的通用寄存器是否需要备 份。 2.4.7 Compare Immediate 指令 cmpi BF,L,RA,SI 语义: n <- BF 表示的数值 if L = 0 then a <- EXTS((RA)32:63) else a <- (RA) if a < EXTS(SI) then c <-0b100 //小于时设置 CRn(0)为 1 else if a > EXTS(SI) then c <- 0b010 //大于时设置 CRn(1)为 1 else c <- 0b001 //等于时设置 CRn(2)为 1 CR 寄存器中的: 4×BF+32:4×BF+35 <- c || XER 寄存器中 SO 位 // ||表示字符连接 解释: 将寄存器 RA 与立即数 SI 进行比较,然后将比较指令产生的状态放入 CR 寄存器的不同字 段中,CR 寄存器有 8 个 CRn 字段(n 从 0 至 7) ,可以由三 bit 位的 BF 段指定。 L:表示是进行 32 位还是 64 的比较。对于 e600 而言,只有 L=0 的比较。 备注: 解释一下 CR 寄存器,e600 中 32 位 CR 寄存器用来存放指令执行之后的状态,该寄存器分 为 8 个字段。分别为 CR0,CR1,…,CR7。每个字段都由 4bit 组成。 各个字段 CRn(n 从 0 至 7)都可以表示响应指令执行的结果: 比如整数的加减及逻辑运算,使用 CR0 来存放状态,CR0 的四个 bit 位的含义如下: CR0(0) :用来表示 LT(小于) ,当整型指令运算结果为负时置 1; CR0(1) :用来表示 GT(大于) ,当整型指令运算结果为正时置 1; CR0(2) :用来表示 EQ(等于) ,当整型指令运算结果为 0 时置 1; CR0(3) :用来表示 SO(溢出) ,当整型指令运算结果溢出时置 1; 同理浮点数的运算使用 CR1 来保存运算状态, 保存过程同上, e600 的比较指令可以使用 CR

寄存器的全部的 CRn(n 从 0 至 7)来保存运算的结果。一般在比较指令 cmp 之后都会有一 个条件跳转指令, 比如 bc 指令。 其中 cmp 指令可以指定由 CR 寄存器的 CRn 段来保存结构, 比如上面的 cmpi 指令就用 BF 来指定 CRn 字段,一般而言 bc 指令就会更新 cmp 中相同的 CRn 段来决定条状。 2.4.8 Compare Logical Immediate 指令 cmpli BF,L,RA,UI 和 cmpli 的指令的用法相同,所不同的是 cmpli 是无符号数直接的比较, 而 cmpi 是有无符号之间的比较。 2.4.9 Trap Word Immediate 指令 twi TO,RA,SI 解释:该指令称之为陷阱(trap)指令,该指令对一些 Trap 条件进行测试,如果条件成立, 则处理器进入系统的 trap 程序,然后对 trap 事件进行处理。 TO 字段(有 5 位),第 0 至 4 位此次表示: LTS:(有符号式比较:小于) GTS:(有符号数比较:大于) EQ:(有符号数比较:等于) LT:(无符号数比较:小于) GT:(无符号数比较大于) 比如:如果用户将 TO 设置为 1,并且 RA 中的有符号数小于立即数 SI(符合扩展之后) , 则处理器进程 Trap 处理程序。 备注:如果把立即数 SI 换成寄存器索引 RB,则 tw TO,RA,RB 就是 X-Form 形式。 tw 31, r0, r0 就是一个无条件 trap 指令,可用助记符“trap”表示。 另外,D-Form 指令包含了很多用于算术和逻辑运算的指令,这些指令都是需要一个立即数 的,由于这些立即数都是在指令中的,这样在 e600 内核中,这些立即数的长度只能限制在 16 位。为了能顺利的处理 32 位的立即数,e600 内核中的 D-Form 指令可以在立即数的计算 时把立即数左移 16 位,这样我们就可以用两条指令就可以把一个立即数放到一个通用计算 器中。 例如: 读取一个 word(0x12345678)到目的寄存器: lis RA,0x12345678@h // 高 16 位(0x1234)偏移 16 位后变成 0x12340000 放进 RA ori RB, RA, 0x12345678@l // RA 与低 16 位(0x5678)相或后构成完整数据放进 RA 备注:PowerPC 指令中,i 后缀表示立即数,s 后缀表示左移 16 位。例如 addi、addis、ori、 oris 等。这段代码也可以用来读取某个变量的值,只需要把立即数替换成变量名。

从某个地址(0x56789abc)读取数据 lis RA,0x56789abc@ha //调整后的高 16 位(0x5679)偏移 16 位后变成(0x56790000) 放进 RA lwz RB, 0x56789abc@l (RA) //RA 加上低 16 位(0xffff9abc) 构成完整数据地址,然后将其内 容放进 RB 注意: 用于算术运算的操作数(包括 addi 的操作数)时,@l 获取的是符号扩展的低 16 位数据 (0xffff9abc) ,因此高 16 位必须进行根据 bit15 进行调整,而不能简单的使用@h 来获取。

2.5 X-Form 指令 E600 中 X-Form 指令的数量最多,D-form 指令的每一个指令在 X-Form 中都有对应的指令。 除此之外,X-Form 指令还有一些专用的指令。 X-Form 的指令格式如下: 0-5 6-10 11-15 16-20 21-30 31 OPCD TS/RT RA RB XO Rc X-Form 的指令格式与 D-Form 指令格式: 0-5 5-10 11-15 16-31 OPCD RS/RT RA D 相比,只是将 D-Form 指令中的 D 字段差分为 RB,XO 和 Rc 字段。 X-Form 中的 RB 和 RS 字段存放源操作数寄存器的索引 RT 字段存放目的操作数的索引; RA 字段既可以存放源操作数寄存器的索引,而言可以存放目的操作数的索引; Rc 字段置 1 表示当前指令的运算结果将改变 CR 寄存器中的相应 CRn 段,具有“.”的后缀的 指令,其 Rc 位置 1。 典型的 X-Form 指令如下: 存储器访问类指令:lbzx, lhzx, lhax, lwzx,stbx, sthx, stwx, lbzux,lhzux,lwzux,stbux,sthux,stwux 指令等,这些指令和 D-Form 中的 lbz,lhz,lha,lwz,stb,sth,stw,lbzu,lhzu,lwzu,stub,sthu,stwu 一一 对应,所不同的是 D-Form 使用的立即数,换成了 X-Form 使用的寄存器索引。 字节序列交换指令:lhbrx,lwbrx,sthbrx,stwbrx 指令,这些指令的作用是调整字节序列。 比较类指令和 trap 指令:cmp,cmpl,tw 指令 算术逻辑运算指令:and,or,xor,nand,nor,eqv 指令 Count Leading Zeros Word 指令:cntlzw RA,RS 备注:该指令找出 RS 寄存器中从左边开始第一个不为 0 的位,然后将该位所在的位序(从 0 开始)存入 RA 中; 2.6 XL-Form 指令 XL-Form 指令支持条件转移指令,与 B-Form 类条件转移指令: B-Form 指令格式 有条件转移指令 0-5 6-10 11-15 16-29 30 31 OPCD BO BI BD AA LK 不同,该类指令使用 LR 寄存器或者 CTR 寄存器,而不适用 16 位的立即数作为跳转目标。 XL-Form 指令格式: 0-5 6-10 11-15 16-18 19-20 21-30 31 OPCD BO BI ~ BH 16 或者 528 LK

所支持的指令格式: bclr BO,BI,BH //LK=0,21-30 字段值为 16 bclrl BO,BI,BH //LK=1,21-30 字段值为 16 bcctr BO, BI,BH //LK=0,21-30 字段值为 528 bcctrl BO, BI, BH //LK=1,21-30 字段值为 528

X-Form 类指令的 BO,BI 字段值和 B-Form 类中的 BO,BI 字段含义相同,LK 置 1 表示跳 转指令执行后,LR 寄存器指向下一条指令的地址(当前指令地址+4) ,BH 字段用于静态分 支预测。 当条件满足时,bclr 和 bclrl 指令使用 LR 寄存器进行长条状,而 bcctr,bcctrl 指令使用 CTR 寄存器进行长跳转。 于 B-Form 指令类似,X-Form 指令也使用了很多助记符,比如: blr 相当于 bclr 20, 0 备注:XL-Form 指令和 I-Form 指令协作完成指令的跳转 例子如下:

备注:blr 是 XL-Form 指令,bc 是 I-Form 指令。 XL-Form 指令还可以支持 CR 寄存器不同段 CRn 的与,或,异或,同或操作,指令格式如 下: 0-5 6-10 11-15 16-20 21-30 31 OPCD BT BA BB 257/449/193/225/0 ~ 这里举出以下几种指令: crand BT,BA,BB //第 21-30 字段为 257,BT<-BA&BB cror BT,BA,BB //第 21-30 字段为 449,BT<-BA|BB

crxor crnand mcrf

BT,BA,BB //第 21-30 字段为 193,BT<-BA 同或 BB BT,BA,BB //第 21-30 字段为 255,BT<-! (BA&BB) BF,BFA //第 21-30 字段为 0,将 CR 的 BFA 字段拷贝到 BF 字段

2.7 XFX-Form,XFL-Form,XS-Fomr,XO-Form 类指令 XFX-Form 指令格式: 0-5 6-10 11-20 21-30 31 OPCD RT spr/tbr XO ~ 包括 mrspr, mfspr, mrcrf, mfcr, mtocrf 等等 XO-Form 指令用来支持带进位的算术运算指令和乘除法指令格式: 0-5 6-10 11-15 16-20 21 22-30 31 OPCD RT RA RB OE XO Rc 有下面几类指令: 1:addo.,subfo.,addco.,subfo. 指令,此类指令将会影响 CA,SO,OV 位和 CR0 字段; 2:addeo.,subfeo.,addzeo.,subfzeo. 指令,此类指令除会影响 CA,SO,OV 位和 CR0 字段外,还可以将 CA 位参与运算; 3:mullw,divw 指令,此类指令用作乘除运算; 4:A-Form 指令用作浮点运算,典型指令有 fadd,fsub,fmul,fdiv。 2.8 M-Form 指令 M-Form 指令主要作用是对选定的字段做循环左移,并做一些相应掩码操作,该类指令时 PowerPC 指令的精华,包含了一组非常强大的指令。 这里主要介绍三条指令: 2.8.1 Rotate Left Word Immediate then AND with Mask 指令 rlwinm RA,RS,SH,MB,ME (Rc=0) rlwinm. RA,RS,SH,MB,ME (Rc=1) 指令字段: 0-5 6-10 11-15 16-20 21-25 26-30 31 21 RS RA SH MB ME Rc 解释:寄存器 RS 的内容循环左移立即数 SH 位,然后跟立即数 MB 和 ME 形成的 MASK 相 与后放进 RA 备注: MASK 形成的规则是,如果 MB 小于等于 ME,则 MB 到 ME 之间的位全部置 1,包括这两 位,形成 MASK;否则,MB 到 ME 之间的位清 0,其他位包括这两位置 1,形成 MASK。 例子 1: 从立即数 0x12345678(RS)中抽取 bit 20-23,并左移 16 位,从而得到 0x06000000. rlwinm rA, rS, 16, 4, 7 具 体 过 程 : 0x12345678 循 环 左 移 16 位 得 到 0x56781234 , 然 后 与 MASK : 0x0f00 0000 (MASK[4,7])相与。 该指令可以用来抽取 C 语言代码或者寄存器中的位域。 例子 2: 清除立即数 0x12345678(RS)的 bit28-31,并左移 24 位,从而得到 0x0012 3456 rlwinm rA, rS, 24, 8, 31 具体过程如下:0x12345678 循环左移 24 位得到 0x78123456,然后与 MASK:0x00ff ffff (MASK[8,31])相与。

例子 3: 清除立即数 0x12345678(RS)的 bit 6,从而得到 0x10345678 rlwinm rA, rS, 0, 7, 5 具体过程: 0x12345678 循环左移 0 位, 仍是 0x56781234, 然后与 MASK0xfdff ffff (MASK[7,5]) 相与。 功能:该指令可以用来清除 C 语言代码或者寄存器中的位域。 2.8.2 Rotate Left Word then AND with Mask 指令 rlwnm RA,RS,RB,MB,ME (Rc=0) rlwnm. RA,RS,RB,MB,ME (Rc=1) 指令: 0-5 6-10 11-15 16-20 21-25 26-30 31 23 RS RA RB MB ME Rc 解释: 类似于上一条指令,只是把左移的位数放到了寄存器 RB 中 2.8.3 Rotate Left Word Immediate then Mask Insert 指令 rlwimi RA,RS,SH,MB,ME (Rc=0) rlwimi. RA,RS,SH,MB,ME (Rc=1) 格式: 0-5 6-10 11-15 16-20 21-25 26-30 31 20 RS RA SH MB ME Rc 解释:寄存器 RS 的内容循环左移立即数 SH 位,然后跟立即数 MB 和 ME 形成的 MASK 相 与,再把 RA 的内容跟立即数 MB 和 ME 形成的 MASK 的补码相与,即清掉 RA 中 MASK 对应的位,最后把处理后的 RS 和 RA 的内容相或,放入 RA 中 备注: MASK 形成的规则是,如果 MB 小于等于 ME,则 MB 到 ME 之间的位全部置 1,包括这两 位,形成 MASK;否则,MB 到 ME 之间的位清 0,其他位包括这两位置 1,形成 MASK。 例子: 抽取 0x87654321(RS)的 bit 24-31,用以对立即数 0x12345678(RA)的 bit 8-15 进行先清除 后置位的操作,从而得到 0x12215678. rlwimi rA, rS, 16, 8, 15 具 体 过 程 : 0x87654321(RS) 循 环 左 移 16 位 得 到 0x43218765 , 然 后 与 MASK0x00ff 0000 (MASK[8,15]) 相 与 得 到 0x0021 0000 ; 再 把 0x12345678 ( RA ) 与 MASK0x00ff 0000 (MASK[8,15])的补码 0xff00 ffff 相与,得到 0x1200 5678; 最后 0x0021 0000 跟 0x1200 5678 相与,得到 0x12215678。 功能:该指令可以用来清除 C 语言代码或者寄存器中的某个位域,然后对该位域进行赋值 的操作。

第三部分: 第三部分:总结 PowerPC 处理器采用 RISC 定长指令集,所以它的指令集不多,但是这些基本的指令集可以 衍生出很多复杂的指令集,而令我们这些初学 PowerPC 指令集的人望而生畏,但是即便如 此,我们仍然应该耐着性子把这些指令认真的读一遍,这样我们才能了解 PowerPC 指令集。 第四部分:参考资料: 第四部分:参考资料: PowerISA_V2.06_PUBLIC 王齐.Linux PowerPC 详解-核心篇


相关文章:
32位PowerPC常用指令集总结
32位PowerPC常用指令集总结_计算机软件及应用_IT/计算机_专业资料。PowerPC指令集 32 位 PowerPC 常用指令集总结 第一部分 PowerPC 精简指令集计算机(RISC)简介 ...
精简指令集
IBM 公司的 PowerPC、MIPS 公司的 MIPS 和 SUN ...常用的精指令集微处理器包括 DECAlpha、 ARC、ARM...4 特征 编辑 32 位精简指令集架构 统一指令编码(...
PowerPC常用指令
PowerPC常用指令_IT/计算机_专业资料。总结了PowerPC常用的一些指令查看...32位PowerPC常用指令集总... 10页 免费 PowerPC价格数据大全 9页 免费喜欢...
计算机三级网络要点整理总结
PowerPC、MIPS 公 MIPS、HP 公司 Alpha,SUN 的 Sparc VLIW—超长指令字,采用 ...更常用的是 MFLOPS 即每秒运行一百万次浮点运算,奔腾 32 位处理器,安腾 64 ...
PowerPC汇编指令集
谨以此作为 PowerPC 指令集架构的总结,希望能够引起大家对 PPC 汇 编的兴趣。...32位PowerPC常用指令集总... 10页 免费 PowerPC 体系结构之指令... 17页 ...
32位PowerPC构架通用寄存器分析及总结一
32位PowerPC构架通用寄存器分析及总结一_信息与通信_工程科技_专业资料。32位PowerPC...32位PowerPC常用指令集总... 32位PowerPC构架通用寄存... 32位PowerPC构架通用...
MIPS指令集
(在 64 位版本的 X86 核 PowerPC 中 还有这个负担) 功能分组: 空操作:nop...(64 位左移,低位补零) ;dsra、dsra32、 dsrav(64 位算术右移指令) ;...
PowerPC汇编指令集简析
好了,现在来详细看下赋值指令,下面是最常见的赋值...前面说了,PowerPC 指令为 32 位长,指令内仅有 16...汇编程序总结下上面的指令集,实现的功 能就是载入...
32位PowerPC构架通用寄存器分析及总结二
32位PowerPC构架通用寄存器分析及总结二_信息与通信_工程科技_专业资料。32位PowerPC...32位PowerPC常用指令集总... 32位PowerPC构架通用寄存... 32位PowerPC构架通用...
unix常用命令
AIX 常用命令的 HP-UNIX 和 SOLARIS 对照表 ...在 AIX 系统安装时,缺省安装的内核是 32 位。可以...powerpc uname -r # 显示操作系统的发行号 uname ...
更多相关标签:
powerpc汇编指令集 | powerpc指令集 | powerpc汇编指令手册 | powerpc fadd汇编指令 | 32位汇编指令 | 32位汇编指令集 | 32位指令 | 32位指令集 |