P1.L = LO(TCNTL);P1.H = HI(TCNTL);R0 = 50 (z);[P1 + TSCALE - TCNTL] = R0; // TSCALE 0xFFE0 3008
P1.L = LO(TSCALE);P1.H = HI(TSCALE);R0 = 50 (z);[ TSCALE ] = R0; // TSCALE 0xFFE0 3008
Sorry for the delayed response.
Just consider the first scenario,
>> Here the pointer register (P1) is loaded with the address of TCNTL register (0xFFE03000). The data register R0 is loaded with value 50. Later the value of the data register is loaded to the address pointed by the P1 + 8.
[P1 + TSCALE - TCNTL] = R0; can be simplified as [P1 + 0xFFE03008 - 0xFFE03000] = R0; => [P1 + 8] = R0;
Now, consider the next scenario,
>> Basically, the [ TSCALE ] = R0; is a syntax error. It should be [ P1] = R0; Here the value of data register R0 is loaded to the address pointed by the pointer register P1 (0xFFE03008).
Hope this clarifies your doubt.
Retrieving data ...