Store Byte
D-Form
- stb RS,D(RA)
Pseudo-code:
b <- (RA|0)
EA <- b + EXTS(D)
MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
Special Registers Altered:
None
Store Byte Indexed
X-Form
- stbx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
Special Registers Altered:
None
Store Byte with Update
D-Form
- stbu RS,D(RA)
Pseudo-code:
EA <- (RA) + EXTS(D)
MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
RA <- EA
Special Registers Altered:
None
Store Byte with Update Indexed
X-Form
- stbux RS,RA,RB
Pseudo-code:
EA <- (RA) + (RB)
MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
RA <- EA
Special Registers Altered:
None
Store Halfword
D-Form
- sth RS,D(RA)
Pseudo-code:
b <- (RA|0)
EA <- b + EXTS(D)
MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
Special Registers Altered:
None
Store Halfword Indexed
X-Form
- sthx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
Special Registers Altered:
None
Store Halfword with Update
D-Form
- sthu RS,D(RA)
Pseudo-code:
EA <- (RA) + EXTS(D)
MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
RA <- EA
Special Registers Altered:
None
Store Halfword with Update Indexed
X-Form
- sthux RS,RA,RB
Pseudo-code:
EA <- (RA) + (RB)
MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
RA <- EA
Special Registers Altered:
None
Store Word
D-Form
- stw RS,D(RA)
Pseudo-code:
b <- (RA|0)
EA <- b + EXTS(D)
MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
Special Registers Altered:
None
Store Word Indexed
X-Form
- stwx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
Special Registers Altered:
None
Store Word with Update
D-Form
- stwu RS,D(RA)
Pseudo-code:
EA <- (RA) + EXTS(D)
MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
RA <- EA
Special Registers Altered:
None
Store Word with Update Indexed
X-Form
- stwux RS,RA,RB
Pseudo-code:
EA <- (RA) + (RB)
MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
RA <- EA
Special Registers Altered:
None
Store Doubleword
DS-Form
- std RS,DS(RA)
Pseudo-code:
b <- (RA|0)
EA <- b + EXTS(DS || 0b00)
MEM(EA, 8) <- (RS)
Special Registers Altered:
None
Store Doubleword Indexed
X-Form
- stdx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 8) <- (RS)
Special Registers Altered:
None
Store Doubleword with Update
DS-Form
- stdu RS,DS(RA)
Pseudo-code:
EA <- (RA) + EXTS(DS || 0b00)
MEM(EA, 8) <- (RS)
RA <- EA
Special Registers Altered:
None
Store Doubleword with Update Indexed
X-Form
- stdux RS,RA,RB
Pseudo-code:
EA <- (RA) + (RB)
MEM(EA, 8) <- (RS)
RA <- EA
Special Registers Altered:
None
Store Quadword
DS-Form
- stq RSp,DS(RA)
Pseudo-code:
b <- (RA|0)
EA <- b + EXTS(DS || 0b00)
MEM(EA, 16) <- RSp
Special Registers Altered:
None
Store Halfword Byte-Reverse Indexed
X-Form
- sthbrx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 2) <- (RS) [56:63] || (RS)[48:55]
Special Registers Altered:
None
Store Word Byte-Reverse Indexed
X-Form
- stwbrx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 4) <- ((RS)[56:63] || (RS)[48:55] || (RS)[40:47]
||(RS)[32:39])
Special Registers Altered:
None
Store Doubleword Byte-Reverse Indexed
X-Form
- stdbrx RS,RA,RB
Pseudo-code:
b <- (RA|0)
EA <- b + (RB)
MEM(EA, 8) <- ((RS) [56:63] || (RS)[48:55]
|| (RS)[40:47] || (RS)[32:39]
|| (RS)[24:31] || (RS)[16:23]
|| (RS)[8:15] || (RS)[0:7])
Special Registers Altered:
None
Store Multiple Word
D-Form
- stmw RS,D(RA)
Pseudo-code:
b <- (RA|0)
EA <- b + EXTS(D)
r <- RS[0:63]
do while r <= 31
MEM(EA, 4) <- GPR(r)[32:63]
r <- r + 1
EA <- EA + 4
Special Registers Altered:
None