ARM中LR存储的是履行BL或许BLX指令后,PC的值,用于保存函数调用的回来地址。IR存储的是下一条即将履行的指令,有什么差异?
先看界说:
(1)PC是程序计数器,存储即将履行的指令地址
(2)LR是链接寄存器,是ARM处理器中一个有特别用处的寄存器,当调用函数时,回来地址即PC的值被保存到LR中(mov lr,pc)。
(3)IR是指令寄存器,用来保存当时正在履行的一条指令。当履行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。
差异:
(1)IR是微体系结构概念(什么是微体系结构?便是程序员看不到,但硬件中的确存在的硬件逻辑,只要体系设计者知道其存在。),而LR是程序员可见的寄存器。比如用gdb调试程序时,假如打印LR寄存器内容是能够看到其值的,可是打印IR是不可能的。
(2)LR是PC的备份,PC寄存器存的是即将履行的指令的地址;IR存的是即将送到ALU等部件履行的指令内容。
暂时只想到这些,欢迎弥补。