3.3 整数指令
这类指令大致分为如下几类:
整数访存指令
整数算术运算指令
整数逻辑运算指令
整数比较指令
整数陷阱指令
整数移位指令
XER 指令
其中以整数循环移位指令最为特别。
3.3.1 整数访存指令
3.3.1.1 Load Byte/Half-word/Word and Zero
该类指令从指定地址处读取 8 位、16 位、32 位数据,置入 RT,RT 高位置 0
lbz/lbzu RT, D(RA)
lbzx/lbzux RT, RA, RB
lhz/lhzu RT, D(RA)
lhzx/lhzux RT, RA, RB
lwz/lwzu RT, D(RA)
lwzx/lwzux RT, RA, RB
RT, RA, RB 皆为 GPR,D 为有符号立即数。则有效地址的计算分别为:RA[32:63] + D,RA[32:63] + RB[32:63],有效地址高 32 位置 0。
后缀 u 表示 Update,即将有效地址更新到 RA 中
后缀 x 表示 Indexed,即使用 RA + RB 的寻址方式
以上用于 32 位,对 64 位,上述指令皆加后缀 ‘e’。则有效地址的 0 ~ 31 位, 不再置 0,其计算方式如下:RA + D,RA + RB。
此外,用于 64 位的还有对双字操作的支持:
lde/ldue/ldxe/lduxe