SPRUIY2 November 2024 F29H850TU , F29H859TU-Q1
The Pointer Addressing with #Immediate Offset type allows indirect read or write access to any location in the 32-bit memory space with the pointer address from one of the addressing registers, A0 to A14, and an optional immediate offset provided in the instruction.
The immediate offset is added to the base register using a full 32-bit unsigned ADD operation. If the value overflows, the value wraps around.
The typical use case is for indexing into a given data array, or a peripheral, in any random order multiple times. Each addressing mode within this type is tailored to a specific use:
*(Ax+#u28imm) | For implementing position independent code, or when accessing very large data arrays. |
*(Ax+#u10imm) | For accessing data arrays of 1KB or less. |
*(Ax+#u10imm<<2) | For accessing peripheral registers (peripherals have register ranges of 4KB, or multiples of 4KB, and are aligned on 32-bit word boundary). |
*(Ax+#u8imm<<2) | For moving multiple data entries between two 32-bit data arrays of less than 1KB. Used only in one data move instruction, which enables this functionality to in a compact 32-bit instruction. |