Chinaunix首页 | 论坛 | 博客
  • 博客访问: 494071
  • 博文数量: 174
  • 博客积分: 2502
  • 博客等级: 少校
  • 技术积分: 1923
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-28 09:47
文章分类

全部博文(174)

文章存档

2011年(8)

2010年(16)

2009年(68)

2008年(82)

我的朋友

分类:

2009-05-14 13:23:26

 

存储/加载指令

1 整数存储指令

整数存储指令如表2所示。

2 整数存储指令

名称

助记符

语法格式

字节存储(偏移地址寻址)

stb

rS, d(rA)

字节存储(寄存器寻址)

stbx

rS, rA, rB

记录有效地址的字节存储(偏移地址寻址)

stbu

rS, d(rA)

记录有效地址的字节存储(寄存器寻址)

stbux

rS, rA, rB

半字存储(偏移地址寻址)

sth

rS, d(rA)

半字存储(寄存器寻址)

sthx

rS, rA, rB

记录有效地址的半字存储(偏移地址寻址)

sthu

rS, d(rA)

记录有效地址的半字存储(寄存器寻址)

sthux

rS, rA, rB

字存储(偏移地址寻址)

stw

rS, d(rA)

字存储(寄存器寻址)

stwx

rS, rA, rB

记录有效地址的字存储(偏移地址寻址)

stwu

rS, d(rA)

记录有效地址的字存储(寄存器寻址)

stwux

rS, rA, rB

(1)    字节存储指令stb(偏移地址寻址)

stb rSdrA  

有效地址为rA的内容加drS的低8位内容存储到有效地址为EA的存储器中。

(2)    字节存储指令stbx(寄存器寻址)

stbx rSrArB

有效地址为rA的内容加上rB的内容,rS的低8位内容存储到有效地址为EA的存储器中。

(3)    记录有效地址的字节存储指令stbu(偏移地址寻址)

stub rSdrA

有效地址EA=(rA)+drS的低8位内容存储到有效地址为EA的存储器中。rAEA,如果rA0,则指令无效。

(4)    记录有效地址的字节存储指令stbux(寄存器寻址)

stbux rSrArB

有效地址EA=(rA)+(rB),rS的低8位内容存储到有效地址为EA的存储器中,rAEA,如果rA0,则指令无效。

(5)    半字存储指令sth(偏移地址寻址)

sth rSdrA

有效地址EA=(rA)+drS的低16位内容存储到有效地址为EA的存储器中。

(6)    记录有效地址的半字存储指令sthu(偏移地址寻址)

sthu rSdrA

有效地址EA=(rA)+drS的低16位内容存储到有效地址为EA的存储器中。rAEA,如果rA0,则指令无效。

(7)    字存储指令stw(偏移地址寻址)

stw rSdrA

有效地址EA=(rA)+drS32位内容存储到有效地址为EA的存储器中。

(8)    记录有效地址的字存储指令stwu(偏移地址寻址)

stwu rSdrA

有效地址EA=(rA)+drS32位内容存储到有效地址为EA的存储器中,rAEA,如果rA0,则指令无效。

(9)    记录有效地址的字存储指令stwux(寄存器寻址)

stwux rSrArB

有效地址EA=(rA)+(rB),rS32位内容存储到有效地址为EA的存储器中。rAEA,如果rA0,则指令无效。

(10)字存储指令stwx(寄存器寻址)

stwx rSrArB

有效地址EA=(rA)+(rB),rS32位内容存储到有效地址为EA的存储器中。

2、整数加载指令

整数加载指令如表3所示。

名称

助记符

语法格式

高位清零加载字节指令(偏移地址寻址)

lbz

rD, d(rA)

高位清零的加载字节指令(寄存器寻址)

lbzx

rD, rA, rB

高位清零的加载字节并记录有效地址指令(偏移地址寻址)

lbzu

rD, d(rA)

高位清零的加载字节并记录有效地址指令(寄存器寻址)

lbzux

rD, rA, rB

高位清零的加载半字指令(偏移地址寻址)

lhz

rD, d(rA)

高位清零的加载半字指令(寄存器寻址)

lhzx

rD, rA, rB

高位清零的加载半字并记录有效地址指令(偏移地址寻址)

lhzu

rD, d(rA)

高位清零的加载半字并记录有效地址指令(寄存器寻址)

lhzux

rD, rA, rB

加载半字指令(偏移地址寻址)

lha

rD, d(rA)

加载半字指令(寄存器寻址)

lhax

rD, rA, rB

加载半字并记录有效地址指令(偏移地址寻址)

lhau

rD, d(rA)

加载半字并记录有效地址指令(寄存器寻址)

lhaux

rD, rA, rB

加载字指令(偏移地址寻址)

lwz

rD, d(rA)

加载字指令(寄存器寻址)

lwzx

rD, rA, rB

加载字并记录有效地址指令(偏移地址寻址)

lwzu

rD, d(rA)

加载字并记录有效地址指令(寄存器寻址)

lwzux

rD, rA, rB

 

(1)    lbz rD, d(rA) EA=(rA|0)+d。从存储器读取EA地址的内容,并加载低8位到rDrD的其他位清0。不影响其他寄存器。

(2)    lbzu rD, d(rA) EA=(rA)+d。从存储器读取EA地址一个字节的内容,并加载低8位到rDrD的其他各位清零,有效地址EA存放在rA中。

 

(3)    lbzux rDrArB EA=(rA)+(rB)。从存储器读取EA地址一个字节的内容,并加载低8位到rDrD的其他各位清零,EA存放在rA中。如果rA0或者rArD,则指令无效。

(4)    lbzx rDrArB   EA=(rA|0)+(rB)。从存储器读取EA地址一个字节的内容,并加载低8位到rDrD的其他各位清0

(5)    lha rD, d(rA) EA=(rA|0)+d。从存储器EA处读取两个字节的数,并加载到rD的低16位。rD的其他位填充最高位的值。

 

(6)    lhax rDrArB EA=(rA)+(rB)。从存储器EA处读取两个字节的数,并加载到rD的低16位。rD的其他位填充最高位的值。

(7)    lhau rD, d(rA) EA=(rA)+d。从存储器EA处读取两个字节的数,并加载到rD的低16位。rD的其他位填充最高位的值。EA存放在rA中,如果rA0或者rArD,则指令格式无效。

(8)    lhaux rDrArB EA=(rA)+(rB)。从存储器EA处读取两个字节的数,并加载到rD的低16位。rD的其他位填充最高位的值。EA存放在rA中,如果rA0或者rArD,则指令格式无效。

 

 

(9)    lhz rD, d(rA) EA=(rA|0)+d。从存储器EA处读取两个字节的数,并加载到rD的低16位。rD的其他位清零。

 

(10)lhzu rD, d(rA) EA=(rA|0)+d。从存储器EA处读取两个字节的数,并加载到rD的低16位。rD其他位清零。EA存入rA,如果rA0或者rArD,则指令格式无效。

 

(11)lhzux rDrArB EA=(rA)+(rB)。从存储器EA处读取两个字节的数,加载到rD的低16位,rD其他位清零。EA存入rA,如果rA0或者rArD,则指令格式无效。

 

(12)lhzx rDrArB EA=(rA|0)+(rB),从EA处读取两个字节的数,并加载到rD的低16位,将rD的其他位清零。

 

(13)lwz rDdrA EA=(rA|0)+d,从EA处读取4个字节的数,并加载到rD

 

(14)lwzu rDdrA EA=(rA)+d,从EA处读取4个字节的数,并加载到rDrAEA,如果rA0rArD,则指令格式无效。

 

(15)lwzux rDrArB EA=(rA)+(rB),从EA处读取4个字节的数,并加载到rDrAEA,如果rA0rArD,则指令格式无效。

 

(16)lwzx rDrArB EA=(rA|0)+(rB),从EA处读取4个字节的数,并加载到rD

整数多字存储/加载指令

3 整数多字存储/加载指令

名称

助记符

语法格式

多字加载

lmw

rDdrA

多字存储

stmw

rSdrA

(1)    lmw rDdrA EArAd。以EA起始的n个连续的字加载到通用寄存器GPRs rDr31处,n32rDEA必须为4的倍数,如果rA0,则指令格式无效。指令执行时间长。

(2)    stmw rSdrA EArAd。把通用寄存器从GPRs rSGPRs r31,存储到以EA起始的n个连续的字存储器,EA必须是4的倍数。指令执行时间长。

阅读(657) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~