STB
Store Byte to Memory With a 15-Bit Unsigned Constant Offset
3-238
Instruction Set
SPRU733
Store Byte to Memory With a 15-Bit Unsigned Constant Offset
STB
Syntax
STB
(.unit)
src
, *+B14/B15[
ucst15
]
.unit = .D2
Compatibility
C62x, C64x, C67x, and C67x+ CPU
Opcode
31
29
28
27
23
22
8
7
6
4
3
2
1
0
creg
z
src
ucst15
y
0 1 1 1 1
s p
3
1
5
15
1
1
1
Description
Stores a byte to memory from a general-purpose register (
src
). The memory
address is formed from a base address register B14 (
y
= 0) or B15 (
y
= 1) and
an offset, which is a 15-bit unsigned constant (
ucst15
). The assembler selects
this format only when the constant is larger than five bits in magnitude. This
instruction executes only on the .D2 unit.
The offset,
ucst15
, is scaled by a left-shift of 0 bits. After scaling,
ucst15
is
added to
baseR
. The result of the calculation is the address that is sent to
memory. The addressing arithmetic is always performed in linear mode.
For
STB
, the 8 LSBs of the
src
register are stored.
src
can be in either register
file. The
s
bit determines which file
src
is read from:
s
= 0 indicates
src
is in the
A register file and
s
= 1 indicates
src
is in the B register file.
Square brackets, [ ], indicate that the
ucst15
offset is left-shifted by 0.
Parentheses, ( ), can be used to set a nonscaled, constant offset. You must
type either brackets or parentheses around the specified offset, if you use the
optional offset parameter.
Execution
if (cond)
src
→
mem
else nop
Note:
This instruction executes only on the B side (.D2).