SPRUIY2 November 2024 F29H850TU , F29H859TU-Q1
This is a 12-bit field for indirect encoding of addresses used only for "Pointer Addressing with #Immediate Offset."
Table 5-4 shows the various ways the 12 bits can be used to encode the address.
ADDR3 Field: (Ax = A0 to A14) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mnemonic | Shorthand | Address Generation | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
*(Ax+#u8imm<<2) | *Ax[#u8imm] | addr = Ax + #u8imm<<2 (#u8imm << 2 = 0 to 1KB range, 4B steps) | Ax[0-14] 1 | #u8imm |
The following are the instructions that can use the ADDR3 field:
MV.32
Example:
; The 32-bit content at the memory location addressed using the ADDR3
; addressing mode, ADDR3_x, is copied to the memory location addressed using
; the ADDR3 addressing mode, ADDR3_y. Both ADDR3 fields use the same
; addressing mode "*(Ax+#u8imm<<2)", which calculates the address using a
; base pointer added with an 8-bit immediate (#u8imm) that is multiplied by 4
; (#u8imm<<2). NOTE: The base address must be 32-bit aligned.
MV.32 ADDR3_y,ADDR3_x ; field
MV.32 *(Ax+#u8imm<<2),*(Ax+#u8imm<<2) ; addressing mode
MV.32 *(A0+#4<<2),*(A1+#8<<2) ; actual assembly