汇编六、状态寄存器
发布网友
发布时间:2022-12-30 20:00
我来回答
共1个回答
热心网友
时间:2023-10-31 11:49
CPU内部的寄存器中,有一种特殊的寄存器,这种寄存器在ARM中,被称为状态寄存器,即CPSR(current program satus register)寄存器;
CPSR和其他寄存器不一样,其他寄存器是用来存放数据的,都是一个寄存器具有一个含义。而CPSR寄存器是按位起作用的,也就是说,它的每一位都具有专门的含义,用来记录特定的信息;
当两个数相加的时候,有可能产生从最高位向前进一位;比如两个32位数据0xaaaaaaaa+0xaaaaaaaa,将产生进位;由于这个进位值无法再32位中保存,我们就简单的说,这个进位值丢失了。其实在CPU运算中,并不会丢失这个运算值,而是记录咋一个特殊的寄存器位上,ARM就用C标志来记录这个进位值。例如:
当两个数据做减法运算时,有可能向更高位借位;比如两个32位数据0x00000000-0x000000ff,将产生借位,借位后,相当于计算0x100000000-0x000000ff,得到0xffffff01,由于借了一位,所以用C来标记借位,C=0。例如