CPU当中的寄存器
不同的CPU有不同的指令集结构,对CPU寄存器的设置要求是不一样的。所以我们在这里面的讲解是抽象的讲解,我们主要讲解寄存器在各种类型计算机当中的简单的分类。
1.用户可见寄存器:
(1)通用寄存器 可以用来存放操作数 比如说8086当中的AX,BX等等,可以用他来存放操作数。当然在有一些机器里面,可以用这些通用寄存器对某种寻址方式进行支撑,做为某一种寻址方式的专用寄存器,这些是可以做的。
(2)数据寄存器 保存数据用的,或者存放操作数,满足各种数据类型需求,比如说,在满足现代的计算机当中,那么我们既有保存整数的寄存器,又有保存浮点数的寄存器。另外有一些寄存器,我们可以用2个寄存器拼接在一起用来存放双倍长的数据。
(3) 地址寄存器 用来保存地址的。比如说大家在8086里学过的段寄存器就是用来保存地址的,比如说段基址,堆栈寄存器,堆段指针等等都是用来保存地址的。
(4)条件码寄存器 这个在8086当中也见过,这个寄存器当中就是用来保存条件码的,可以用来作为程序的分支依据。日入说我们根据前面执行指令的结果,是正,负,零,是否发生溢出,是否有进位等判断是否要进行跳转,那么这些就需要我们条件码寄存器的支持。
2.用户不可见寄存器:用户不可见的寄存器在CPU当中是非常多的,比如说,在流水线结构的计算机当中,在流水段之间的流水段寄存器都是用户不可见的。
3.控制和状态寄存器
(1)控制寄存器
比如,我们要从计算机的内存中取出一条指令,要从PC开始,PC要把指令送给MAR