可有解答下,pc,[pc,#24] ; [0x20] = 0x58,是怎么指向0x00000020,然后又00000058 这个地址的? 重点是如何指向到向0x00000020。
按照流水线技术,汇编语句pc,[pc,#24]的效果应该是pc = 0 + 8 + 0x24,但是,按照这合格源码尽然是0x00000020。
CPU 是arm R4。
源码如下:
可有解答下,pc,[pc,#24] ; [0x20] = 0x58,是怎么指向0x00000020,然后又00000058 这个地址的? 重点是如何指向到向0x00000020。
按照流水线技术,汇编语句pc,[pc,#24]的效果应该是pc = 0 + 8 + 0x24,但是,按照这合格源码尽然是0x00000020。
CPU 是arm R4。
源码如下:
可能进入中断时,PC寄存器不存在流水线+8的情况,此时,流水线可能是处于清空复位状态。
还是不明白下面这句话怎么得到的0x20,难道复位时PC初始值为-4,然后去读取0x00000020处的值???彻底迷糊了。。。
LDR pc,[pc,#24] ; [0x20] = 0x58