ARM指令中PC指针取址问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM指令中PC指针取址问题相关的知识,希望对你有一定的参考价值。

那位牛人帮忙细致的解释一下,为什么说PC指针寄存器中的值是当前执行指令地址+8,我能这样理解吗:CPU正在执行A指令,这时候PC寄存器正在取A指令地址值+8那个地址处的指令,并且pc的作用就是用来取指令用的,所以R15中存的都是刚去来的指令的地址值!我这样想对吗?各位牛人们,帮忙指正一下,万谢!

ARM是32位的,所有寄存器都占四个字节,每条指令占四个字节,指令执行的过程:取址---->译码------->执行。这三步都是需要消耗时间的。指令在内存中一块连续内存空间中执行,所有指令像流水线一样执行,假如有多条指令按顺序执行。流水线:1.第一条指令进行取址。2.第一条指令译码,为了节约时间,在第一条指令译码的同时,第二条指令取址,地址为第一条指令地址加4. 3.第一条指令执行,同时第二条指令译码,第三条指令取址,地址等于第一条地址加8. 总结:这里的第一条指令等同于你说的A指令,它执行的时候,第三条指令正在取址,地址等于A指令地址加8. 参考技术A 运行--msconfig--启动,把不需要开机自动运行的程序前面的勾去掉---确定。

360安全卫士也可以,高级---启动项状态---把不需要开机自动运行的程序禁用。追问

想知道百度知道中回答问题者中除了广大网友,难道还有机器自动回答?不太智能啊

以上是关于ARM指令中PC指针取址问题的主要内容,如果未能解决你的问题,请参考以下文章

关于ARM的PC指针(什么时候PC+8,PC+4,PC-4,PC-8)

C中指针符*和取址符&

ARM 架构

ARM的37个通用寄存器

单片机pc指针

C语言关于取值和取址