cpu有多少寄存器? 微机原理篇——8086CPU寄存器结构

8086寄存器和标志位
8086微处理器内部共有14个16位寄存器。这14个寄存器按其用途可分为数据寄存器、段寄存器、地址指针与变址寄存器和控制寄存器。
- 数据寄存器

数据寄存器
数据寄存器包括:累加器AX(Accumulator)、基址寄存器BX(Base)、计数器CX(Counter)和数据寄存器DX(Data)。这4个16位寄存器又可分别分成高8位(AH、BH 、CH、DH)和低8位(AL、BL、CL、DL)。因此,它们既可作为4个16位数据寄存器使用,也可作为8个8位数据寄存器使用,在编程时可存放源操作数、目的操作数或运算结果。
- 段寄存器

段寄存器
在8086系统中,访问存储器的物理地址由段地址和段内偏移地址两部分组成。段寄存器用来存放各分段的逻辑段基值 ,并指示当前正在使用的4个逻辑段,包括代码段寄存器CS、堆栈段寄存器SS、数据段寄存器DS和附加段数据寄存器ES。
①代码段寄存器CS(Code Segment)
存放当前正在运行的程序代码所在段的段基值,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移地址则由IP(指令指针寄存器)提供。
②数据段寄存器DS(Data Segment)
指出当前程序使用的数据所存放的段的最低地址,即存放数据段的段基值 。
③堆栈段寄存器SS(Stack Segment)
指出当前堆栈的底部地址,即存放堆栈段的段基值。
④附加段寄存器ES(Extra Segment)
指出当前程序使用附加数据段的段基值,该段是串操作指令中目的串所在的段。
- 地址指针与变址寄存器

地址指针与变址寄存器
地址指针与变址寄存器一般用来存放主存地址的偏移量(即相对于段起始地址的距离),用于参与地址运算。在BIU(总线接口部件)的地址寄存器中,与左移4位后的段寄存器内容相加产生20位的物理地址。另外它们也可作为16位通用寄存器存放操作数或结果。
地址指针与变址寄存器包括堆栈指针寄存器SP、基址指针寄存器BP、源变址寄存器SI和目的变址寄存器DI。
①堆栈指针寄存器SP(Stack Pointer)
用以指出在堆栈段中当前栈顶的地址,入栈(PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。
②基址指针寄存器BP(Base Pointer)
指出要处理的数据在堆栈段中的起始地址。特别值得注意的是,凡包含BP的寻址方式中,如无特别说明,其段地址由段寄存器提供。
③变址寄存器:源变址寄存器SI(Source Index)和目的变址寄存器DI(Destination Index)
在某些间接寻址方式中,用来存放段内偏移量的全部或一部分。在字符串操作指令中,SI用作源变址寄存器,DI用作目的变址寄存器。
- 控制寄存器

控制寄存器
控制寄存器包括指令指针寄存器IP和标志寄存器FLAGS。
①指令指针寄存器IP(Instruction Pointer)
用来存放下一条要执行指令在代码段中的偏移地址,程序员不可以直接使用,但程序控制类指令会用到。它具有自动加1功能,每当执行一次取指令操作,它将自动加1,总是指向下一条要取的指令在现行代码段中的偏移地址。它和CS(代码段寄存器)相结合,形成指向指令存放单元的物理地址。注意,每取一个字节后IP内容加1,但取一个字后IP内容加2。
②标志寄存器FLAGS
它是16位的寄存器,但实际上8086只用到9位,其中的6位是状态标志位,3位为控制标志位,如图所示。状态标志位是当一些指令执行后,所产生数据的一些特征的表征。 而控制标志位则可以由程序写入,以达到控制处理机状态或程序执行方式的表征。

标志寄存器
状态标志位反映了当前运算和操作结果的状态条件,可作为程序控制转移与否的依据。它们分别是CF、PF、AF、ZF、SF和OF。
1)CF是进位标志位。算术运算指令执行后,若运算结果最高位(字节运算时为第7位,字运算时为第15位)产生进位或借位,则CF=1;否则CF=0。
2)PF是奇偶标志位。反映运算结果中1的个数是偶数还是奇数。运算指令执行后,若运算结果的低8位中含有偶数个1,则PF=1;否则CF=0。
3)AF是辅助进位标志位。算术运算指令执行后,若运算结果的低4位向高4位(即第3位向第4位)产生进位或借位,则AF=1;否则AF=0。
4)ZF是零标志位。若指令运算结果为0,则ZF=1;否则ZF=0。
5)SF是符号标志位。它与运算结果的最高位相同。若字节运算时第7位为1或字运算时第15位为1,则SF=1;否则SF=0。用补码运算时,它能反映结果的符号特征。
6)OF是溢出标志位。当补码运算有溢出时,(字节运算时为-128 ~+127,字运算时为-32768~+32767),OF=1;否则OF=0。
控制标志位用来控制CPU的操作,由指令进行置位和复位,它包括DF、IF 、TF。
1)DF是方向标志位。用于串操作指令,指定字符串处理时的方向。如设置DF=0时,那么每执行一次串操作指令,地址指针内容将自动递增;设置DF=1时,地址指针内容将自动递减。可用指令设置或清除DF位。
2)IF是中断允许标志位。用来控制8086是否允许接收外部中断请求。如设置IF=1,则允许响应可屏蔽中断请求;设置IF=0时,禁止响应可屏蔽中断请求。可用指令设置或清除IF位。注意,IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。
3)TF是单步标志位。它是为调试程序而设定的陷阱控制位。如设置TF=1,使CPU进入单步执行指令工作方式,则此时CPU每执行完一条指令就自动产生一次内部中断。当该位复位后,CPU恢复正常工作。可用指令设置或清除TF位。
-
黑色家具容易落灰,可能是在打扫的时候,摩擦起电造成的,这时需要用清水里适量地添加中性的柔软剂,将抹布打湿后,重新擦拭黑色家具,这样可以缓解容易落灰的情况,还可以摆放植物去除空气中的灰尘,不用的黑色家具,可以用报纸包裹起来。黑色家具容易落灰的解决方法黑色家具容易落灰,一般是在打扫环境卫生时,抹布与黑色[详细]
-
KTV分两种模式:一个是量贩式的。一个是夜总会形式的!量贩的就是大众化的K歌没有小费!公司是靠K歌时间来收取包厢费而赚钱!服务员就拿点工资1000左右没其他小费的!这个赚不到钱但比较稳定一点!夜总会式的就比较复杂!但赚的钱是没有底的高的一个月能拿到上万也有可能去那里的都是有钱的老板。夜总会都有小姐![详细]
-
眼睛作为人的心灵之窗,足可见其无比的重要性。而对汽车而言,车灯则是他们的眼睛。亮起的前大灯能使我们驾乘人员更清楚地看到黑暗为夜色下的道路信息,排除因盲区而造成意外交通事故。随着汽车技术的不断发展,车灯无论是外形,光源还是发光形式等都发生了巨大改变。人们对灯具已不局限于单纯的照明,信号作用上,而需要照[详细]
-
现在越来越多的人都是居住在楼房中,而且层数也越来越高,都期望自己的住房能够有一个大大的阳台,甚至最好是可以做成一个阳光房那样子的,但是如果说自己加的通透的玻璃突然有一天碎裂了,是不是会非常的担惊受怕,不知道是什么原因造成,而且虽然现在一块玻璃的价格不是很高,但是中间涉及到了人工,安装,高空作业等等的[详细]
-
家里可以养茶花,但是要注意一些因素和条件。1. 光照:茶花喜欢明亮的光照,可以放置在能够获得充足阳光的位置。如果家中阳光不足,可以选择人工光源来提供适当的光照。2. 温度:茶花对温度有一定的要求,较为适宜的生长温度为15-25摄氏度。如果环境过于寒冷或过于炎热,会影响茶花的生长和开花。3. 空气湿度[详细]