I have this assembly line :
01000AD8: 979FF103 LDRLS PC,[PC,R3,LSL #2]
With PC = 0x01000AD8
R3 = 0x00000008
CDPS = 800000D3 (so C=0, Z=0)
When I execute this line, the new value for PC should be(if I understand LDRLS correctly*)
PC = 0x01000AD8 + 0x00000008 * 4 = 0x01000AF8
But instead the result is 0x00000BAC
Why?
Maybe I could add that the MMU is activated when this line code is executed.
P.S. * I didn't found the meaning of "LS" in LDRLS in my research...
EDIT : added CPSR value
First problem: Page A2-11:
You forgot to add 8 to PC.
Second problem: Page A8-124:
You forgot the "loads a word from memory" step.
(The page numbers are from the ARM Architecture Reference Manual for ARMv7-A. Your page numbers may differ.)