R0 CREW

How can I find a value in Tricore(TC1766) Arch?

Hello people.
I recently work on Tricore Processor, but I have some problems.
With reading memory value. I do not know if I am right or not, but I think a part of flash memory copied to RAM and now in my algorithm used of RAM cell.
I have shown Code in below:

ld32.a          a15, [a0]-0x7BA4 ; a0 = 0xD00032E0

As you see, a15 is an address that point to a constant value(store in RAM or FLASH) and a0 is the base address of RAM memory. To calculate a15, I subtract a0 from 0x7BA4 but the result is 0xCFFFB73C :frowning: this Address is not a valid address of RAM :frowning:
What is my wrong? What should I do? I’m really confused :frowning:

try adding a breakpoint there,
There’s no MMU in this version so that’s not it.

Seems it should give you an LBMEM exception if it was really doing that

manual says
LD.A A[a], A[b], off16 (BOL)(Base + Long Offset Addressing Mode)
where encoding is

off16[9:6], off16[15:10], off16[5:0], b, a, 99h
4, 6, 6, 4, 4, 8 (in bits for those fields)

can you post the hex dump bytes for the opcode - I would make sure your decoder is not mixing up the bits in the offset when it presents the ascii version to you