影子寄存器造句
- 影子寄存器的引入是ARM的一个特点(X86,MIPS和PowerPC都没有)。
- 要记住一点:所有的影子寄存器都是一个实际存在的物理寄存器。
- ARM核是一个非常紧凑的设计,影子寄存器的引入就是这种设计的表现。
- 不同的通用寄存器的影子寄存器个数也不相同,有的没有,有的只有1个,有的多达5个。
- 引入影子寄存器的另外一个目的是当中断或异常产生时,CPU会将当前“CPU的状态”保存在影子寄存器中。
- 通过引入影子寄存器,指令可以重复使用相同的寄存器编码,但是在不同模式下,这些编码对应不同的物理寄存器。
- 但是,对状态寄存器CPSR而言,这是很恼人的,因为要切换CPU的状态,只能通过修改状态寄存器CPSR来进行,对CPSR的影子寄存器的修改并不能影响CPSR本身,这也就是为什么会有MOV和MOVS,SUB和SUBS的原因。
- 我们知道,ARM有16个通用寄存器,这16个通用寄存器在指令中使用4个bit来标识,但是在不同的模式下,同样的4个bit指向不同的物理寄存器,这些不同的物理寄存器就被称之为影子寄存器。
- 由于影子寄存器的编码同其所Banked的寄存器的编码是一样的,因此象“MOV R0,R13”这样的指令,在不同的模式下,访问的是不同的物理寄存器R13,这意味我们在异常模式下是不能访问正常意义上的R13的,这对一般的寄存器可能关系不大。
- 用影子寄存器造句挺难的,這是一个万能造句的方法