Intel 8086/8088 CPU 寄存器结构

1. 段寄存器

 

需执行程序的各部分(指令代码、数据、堆栈)分别放在主存的指定段中。

 

段寄存器:用来存放每个段的段基值,即段基址的高16位,每个段寄存器有特定功能,不能互换。

 

当前段:由CS、DS、SS、ES指向的段,如图:

 


 

CS ----- 代码段用来存放程序的指令代码序列,CS用来存放当前代码段首址的高16位,即段基值。

 

DS ----- 数据段用来存放程序的有关数据,DS用来存放当前数据段的段基值。

 

SS ----- 堆栈段用来存放按后进先出顺序存取的信息,SS用来存放当前堆栈段的段基值。

 

ES ----- 附加段用来存放运算结果或辅助数据,ES用来存放当前附加段的段基值。

 

2. 通用寄存器

 

8个16位通用寄存器按使用情况分为三种:指针寄存器、变址寄存器、数据寄存器。

 

(1)指针寄存器:主要提供全部或部分偏移量

    SP:专门存放堆栈段中栈顶单元的偏移量。

    BP:存放堆栈段中某个单元的全部/部分偏移量,也可存放16位操作数或运算结果。

 

(2)变址寄存器

    SI/DI:存放主存操作数的全部/部分偏移量,也可存放16位操作数和结果,在多数情况功能可以互换。 但在串操作指令中作用不能互换,源操作数必须用SI提供偏移量,目的操作数必须用DI提供偏移量。

 

(3)数据寄存器

 

数据寄存器既可以作为4个16位的寄存器,也可以作为8个8位的寄存器 ,(H表示高字节,L表示低字节)。

 

程序中,数据寄存器用来存放操作数、运算结果或其他信息。

 

数据寄存器在多数指令中要求指明使用,但也有隐含或特定使用,详细情况见下表:

寄存器
 隐含使用/特定使用的用途
 使用
 
AL
AX
 (1)在乘法指令中存放乘数
(2)在除法指令中存放被除数和商
(3)用在非组合型BCD码运算的调整中
(4)用在某些串操作指令(LODS,STOS,SCAS)中
(5)在输入/输出指令中作数据寄存器
 隐含使用
隐含使用
隐含使用
隐含使用
特定使用
 
AH
 在LAHF指令中做目的的寄存器
 隐含使用
 
AL
 (1)用在组合型BCD码的加减调整指令中
(2)在XLAT指令中做目的寄存器
 隐含使用
隐含使用
 
BX
 在XLAT指令中作基址寄存器
 隐含使用
 
CX
 在循环指令中,做循环次数计数器
 隐含使用
 
CL
 在位移指令中,作位移次数计数器
(位移指令执行后,CL 中内容不变)
 特定使用
 
DX
 在字乘法和除法指令中,作辅助累加器
(即存放乘积或被除数的高16位)
 隐含使用
 
SP
 在堆栈造作指令,作堆栈指针
(即用在PUSH、POP、PUSHF、POPF指令中)
 隐含使用
 
SI
 在串操作指令中,作源变址寄存器
(即用在MOVS,LODS,CMPS指令中)
 隐含使用
 
DI
 在串操作指令中,作目的变址寄存器
(即用在MOVS,STOS,SCAS,CMPS指令中)
 隐含使用
 

 

3 控制寄存器

 

指令指针IP和标志寄存器FR

 

(1)指令指针IP(16位)

   

CS提供指令地址的段基值,IP提供偏移量,CS的内容左移4位,与IP中偏移量相加,形成下一指令首字节的存储单元地址。

 

(2)标志寄存器FR(16位) —— 用来记录程序执行时的状态

 

-----进位标志位CF(Carry Flag)

        ◆ 算术运算:结果最高位有进位/借位置‘1’

        ◆ 移位操作:存放移出的位

 

-----奇偶标志位PF(Parity Flag)

        ◆ 结果低8位中‘1’的个数为偶数置‘1’

 

-----辅助进位标志位AF(Auxiliary Carry Flag)

        ◆ 低字节中的低4位产生进位/借位置‘1’

 

-----零值标志位ZF(Zero Flag)

        ◆ 运算结果为全0置‘1’;不为零置‘0’

 

-----符号标志位SF(Sign Flag)

        ◆ 带符号数运算结果为负置‘1’;为正置‘0’

 

-----溢出标志位OF(Overflow Flag)

        ◆运算结果N发生溢出时,OF置‘1’,即 字节运算(8位) :N ≤ -129 或 N ≥ 128; 字运算(16位): N ≤ -32769 或 N ≥ 32768

 

-----单步标志位TF(Trace Flag)

        ◆ TF=1时,CPU执行完一条指令后产生单步中断,进入单步中断程序

 

-----中断标志位IF(Interrupt-enable Flag)

        ◆ IF=1时,允许CPU响应可屏蔽中断请求

 

-----方向标志位DF(Direction Flag)

        ◆规定串操作指令中串地址的增减方向:DF=0时,SI/DI内容自动递增;DF=1时,SI/DI内容自动递减

 

为了便于了解微处理器各个寄存器的情况,将所有寄存器集成到一起,如图所示:

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yunsongice/archive/2010/10/04/5920415.aspx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值