一、简介
寄存器组是CPU中的一个重要组成部分,它是CPU内部的临时存储空间。寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。
二、分类
CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型。
PC:程序计数器;IR:指令寄存器;PSW:状态字寄存器;通用寄存器组。
三、优点、缺点
在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器中,从而减少访问内存的次数,提高其运行速度。
但是,寄存器的数目也不能太多,除了增加成本外,寄存器地址编码增加还会增加指令的长度。
四、详解
PC:存放指令地址的寄存器,当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的指令地址。
IR:存放正在执行的指令,指令从内存取出后送入指令寄存器。其操作码部分经指令译码器送微操作信号发生器,其地址码部分指明参加运算的操作数的地址形成方式。在指令执行过程中,指令寄存器中的内容保持不变。
PSW:用于保存指令执行完成后产生的条件码,例如运算是否有溢出,结果为正还是为负,是否有进位等。此外,PSW还保存中断和系统工作状态等信息。
通用寄存器组:是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。
累加寄存器是一个数据寄存器,在运算过程中暂时存放被操作数和中间运算结果,累加器不能用于长时间地保存一个数据。
地址寄存器包括程序计数器、堆栈指示器、变址寄存器和段地址寄存器等,用于记录各种内存地址。
在汇编语言程序中,程序员可以直接访问通用寄存器以存取数据,可以访问状态字寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址,但是不能访问指令寄存器。指令寄存器对用户是完全透明的。