Format |
Syntax: |
Operation: |
Operands: |
Architecture revision |
Opcode | ||||||||||||||||
1 |
ld.w Rd, Rp++ |
Rd = *(Rp); Rp = Rp + 4; |
d, p, b, i ∈ {0, 1, …, 15} |
Rev1+ |
| ||||||||||||||||
2 |
ld.w Rd, --Rp |
Rp = Rp - 4; Rd = *(Rp); |
d, p, b, i ∈ {0, 1, …, 15} |
Rev1+ |
| ||||||||||||||||
3 |
ld.w Rd, Rp[disp] |
Rd = *(Rp + (ZE(disp5) << 2)); |
d, p, b, i ∈ {0, 1, …, 15} |
Rev1+ |
| ||||||||||||||||
4 |
ld.w Rd, Rp[disp] |
Rd = *(Rp + (SE(disp16))); |
d, p, b, i ∈ {0, 1, …, 15} |
Rev1+ |
| ||||||||||||||||
5 |
ld.w Rd, Rb[Ri<<sa] |
Rd = *(Rb + (Ri << sa2)); |
d, p, b, i ∈ {0, 1, …, 15} |
Rev1+ |
| ||||||||||||||||
6 |
ld.w Rd, Rb[Ri:<part> << 2] |
If (part == b) Rd = *(Rb + (Ri[7:0] << 2) ); else if (part == l) Rd = *(Rb + (Ri[15:8] << 2) ); else if (part == u) Rd = *(Rb + (Ri[23:16] << 2) ); else Rd = *(Rb + (Ri[31:24] << 2) ); |
{d, b, i} ∈ {0, 1, …, 15} part ∈ {t, u, l, b} |
Rev1+ |
|
Format I to V: Reads the word memory location specified. Format VI: This instruction extracts a specified byte from Ri. This value is zero-extended, shifted left two positions and added to Rb to form an address. The contents of this address is loaded into Rd. The instruction is useful for indexing tables.
Q: |
Not affected. |
V: |
Not affected. |
N: |
Not affected. |
Z: |
Not affected. |
C: |
Not affected. |
Format I and II: If Rd = Rp, the result is UNDEFINED.