寄存器介绍

寄存器定义

澳门新莆京23819com,寄存器是中心处理器内的组成部份。寄存器是有限存贮容量的很快存贮部件,它们可用来暂存指令、数据和位址。

在主旨处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。

IR(Instruction Refister):
IR存放当前正值推行的下令。当执行一条指令时,先把它从内存取到数量寄存器(DR,Data
Register)中,然后再传递至IR。指令划分为操作码和地点码字段,由二进制数字组成。为了举办此外给定的吩咐,必须对操作码举办测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的出口就是命令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
PC(Program Counter):
PC包含当前正值执行的下令的地点。当每个指令被获取,程序计数器的贮存地方加一。在每个指令被拿走之后,程序计数器指向顺序中的下一个命令。当电脑重启或复位时,程序计数器通常復苏到零。

在核心处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

ACC(Accumulator):
ACC是累加器A缩写。累加器A是一个具备特种用途的二进制8位寄存器,专门用来存放在操作数或运算结果。在CPU执行某种运算前,五个操作数中的一个一般应放在累加器A中,运算完成后累加器A中便可取得运算结果。

8086寄存器概况

8086
有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4类。

(1) 通用寄存器有8个, 又可以分为2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个).

多少寄存器分为:

AH&AL=AX(accumulator):
累加寄存器,常用来运算;在统计等一声令下中指定用来存放操作数,另外,所有的I/O指令都采纳这一寄存器与外面设备传送数据.
BH&BL=BX(base): 基址寄存器,常用于地方索引;
CH&CL=CX(count):
计数寄存器,常用来计数;常用来保存总括值,如在移位指令,循环(loop)和串处理指令中作为隐含的计数器.
DH&DL=DX(data): 数据寄存器,常用来数据传递。

她们的特色是,这4个16位的寄存器可以分成高8位: AH, BH, CH,
DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以独家寻址,并单独采纳。

另一组是指针寄存器和变址寄存器,包括:

SP(Stack Pointer):库房指针,与SS配合使用,可指向近期的库房地方;
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址地点;
SI(Source Index):源变址寄存器可用来存放在相对于DS段之源变址指针;
DI(Destination Index):目标变址寄存器,可用来存放在绝对于 ES
段之目标变址指针。

这4个16位寄存器只好按16位展开存取操作,首要用来形成操作数的地址,用于堆栈操作和变址运算中统计操作数的有效性地址。

(2) 指令指针IP(Instruction Pointer)

命令指针IP是一个16位专用寄存器,它指向当前需要取出的一声令下,当BIU从内存中取出一个命令字节后,IP就机关加1,指向下一个指令字节。注意,IP指向的是命令地址的段内地址偏移量,又称偏移地址(Offset
Address)或有效地址(EA,Effective Address)。

(3) 标志寄存器FR(Flag Register)

8086有一个18位的申明寄存器FR,在FR中有意义的有9位,其中6位是情景位,3位是控制位。

OF:
溢出标志位OF用于反映有标志数加减运算所得结果是否溢出。假若运算结果超越目前运算位数所能表示的范围,则号称溢出,OF的值被置为1,否则,OF的值被清为0。
DF:
方向标志DF位用来控制在串操作指令执行时有关指针寄存器暴发调整的方向。
IF:
中断允许标志IF位用来控制CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但无论该标志为啥值,CPU都不可以不响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部暴发的中断请求。具体规定如下:

(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;
(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

TF:跟踪标志TF。该标志可用来程序调试。TF标志没有特另外一声令下来安装或知道。

(1)、假设TF=1,则CPU处于单步执行命令的工作措施,此时每执行完一条指令,就展现CPU内相继寄存器的当下值及CPU将要执行的下一条指令。
(2)、倘若TF=0,则处于连续工作情势。

SF:
符号标志SF用来反映运算结果的标志位,它与运算结果的参天位相同。在处理器系统中,有标志数接纳补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。
ZF:
零表明ZF用来反映运算结果是否为0。如若运算结果为0,则其值为1,否则其值为0。在认清运算结果是否为0时,可应用此标志位。
AF: 下列意况下,匡助进位标志AF的值被置为1,否则其值为0:

(1)、在字操作时,暴发低字节向高字节进位或借位时;
(2)、在字节操作时,暴发低4位向高4位进位或借位时。

PF:
奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。假诺“1”的个数为偶数,则PF的值为1,否则其值为0。
CF:
进位标志CF紧要用于反映运算是否暴发进位或借位。假使运算结果的最高位发生了一个进位或借位,那么,其值为1,否则其值为0。)

(4) 段寄存器(Segment Register)

为了利用所有的内存空间,8086设定了五个段寄存器,专门用来保存段地址:

CS(Code Segment): 代码段寄存器;
DS(Data Segment): 数据段寄存器;
SS(Stack Segment): 堆栈段寄存器;
ES(Extra Segment): 附加段寄存器。

当一个顺序要执行时,就要控制程序代码、数据和储藏室各要用到内存的什么样地方,通过设定段寄存器
CS,DS,SS
来指向这些苗子地方。通常是将DS固定,而依照需要修改CS。所以,程序可以在可寻址空间小于64K的场馆下被写成自由大小。
所以,程序和其数额整合起来的尺寸,限制在DS
所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加快工作。