请教一个 MDK 汇编基础问题, 为什么这里是 LDR R0, [PC, #0x0C],
明明偏移是 0x14
不应该是 LDR R0, [PC, #0x14] 吗?
离线
https://www.cnblogs.com/lifexy/p/7117345.html
LDR r1,[r2,#16] //将(r2+16)地址中的内容存到r1中
离线
https://www.cnblogs.com/lifexy/p/7117345.html
注:ARM9是3级流水线,也就是PC处理时正在执行第1条指令的同时对第2条指令进行译码,并将第3条指令从存储器中取出,如下图所示,PC总是指向第3条指令取值的地方。
离线
这样算下来, 0x08 + 0x0C = 0x14
原来如此, 安心睡觉, 以为 PC = 0 或 4,
哪知道居然等于 8
离线
单步验证了一下, 确实 +8
离线
F1C100s + JLINK 调试也是如此!
离线