8085微处理器寄存器


它有八个可寻址的8位寄存器:A、B、C、D、E、H、L、F,以及两个16位寄存器PC和SP。这些寄存器可以分类为:

  • 通用寄存器

  • 临时寄存器:a) 临时数据寄存器 b) W和Z寄存器

  • 专用寄存器:a) 累加器 b) 标志寄存器 c) 指令寄存器

  • 16位寄存器:a) 程序计数器 (PC) b) 堆栈指针 (SP)

通用寄存器

在8085微处理器中,B、C、D、E、H和L是通用寄存器。所有这些通用寄存器都是8位宽的。它们不如累加器重要。它们用于在程序执行期间临时存储数据。例如,没有指令可以将B和E寄存器的内容相加。至少有一个操作数必须在A寄存器中。因此,要将B和E寄存器相加并将结果存储在B寄存器中,必须执行以下操作:

  • 将B寄存器的内容移到A寄存器。

  • 然后将A和E寄存器相加。结果将存储在A寄存器中。

  • 将此结果从A寄存器移到B寄存器。

可以使用这些寄存器对来存储16位信息。只有BC、DE和HL可以形成寄存器对。当它们在指令中用作寄存器对时,左寄存器被理解为具有高位字节,右寄存器具有低位字节。例如,在DE寄存器对中,D寄存器的内容被视为高位字节,E寄存器的内容被视为低位字节。

临时寄存器

(a)临时数据寄存器 - 算术逻辑单元 (ALU) 有两个输入。一个输入由累加器提供,另一个来自临时数据寄存器。程序员无法访问此临时数据寄存器。但是,它在内部用于执行大多数算术和逻辑指令。

(b) W和Z寄存器 - W和Z寄存器是临时寄存器。这些寄存器用于在执行某些指令期间保存8位数据。由于8085微处理器架构在内部使用它们,因此程序员无法使用这些寄存器。

专用寄存器

(a) A寄存器 (累加器) - A寄存器是一个8位寄存器,在8085中用于执行算术、逻辑、I/O和LOAD/STORE操作。A寄存器通常被称为累加器。累加器是计算机CPU(中央处理器)中用于短期存储算术和逻辑数据的寄存器。在涉及两个操作数的算术运算中,一个操作数必须在此寄存器中。算术运算的结果将存储或累积在此寄存器中。同样,在涉及两个操作数的逻辑运算中,一个操作数必须在累加器中。此外,一些其他操作,如求补和十进制调整,只能对累加器执行。

(b)标志寄存器 - 它是一个8位寄存器,其中五位携带重要的标志信息:S(符号标志)、Z(零标志)、AC(辅助进位标志)、P(奇偶标志)和CY(进位标志);如图1.2所示。

  • S-符号标志 - 算术或逻辑运算执行后,如果结果的D7位为1,则设置符号标志。在给定的字节中,如果D7为1,则该数字将被视为负数。如果D7为0,则该数字将被视为正数。

  • Z-零标志 - 如果ALU操作的结果为零,则设置零标志;如果结果不为零,则复位零标志。如果某个寄存器的值在自增或自减操作后变为零,则零标志也会被设置。

  • AC-辅助进位标志 - 如果从D3位到D4位有溢出(即从低4位到高4位的进位),则设置此标志。此标志用于BCD运算,程序员无法使用它。

  • P-奇偶标志 - 奇偶性由累加器中存在的1的个数定义。算术或逻辑运算后,如果结果的1的个数为偶数,即偶数奇偶性,则设置此标志。如果奇偶性为奇数,则复位此标志。

  • CY-进位标志 - 如果从D7位有溢出,则设置此标志。进位标志也用作减法的借位标志。在下面显示的两个示例中,进位标志都被设置。

          Addition

                    9BH     ----->   1001 1011

                  +75 H     -----> + 0111 0101

                 ---------         -----------

         Carry     1 10 H   -----> 1 0001 0000

        Subtraction

                    89H     ----->   1000 1001

                  -AB H     -----> - 1010 1011

                ---------           -----------

      Borrow1      10 H     ----->  1 1101 1110


c) 指令寄存器 - 在典型的处理器操作中,处理器首先从内存中获取指令的操作码(即,它将地址放在地址总线上,内存通过将存储在指定地址上的数据放在数据总线上进行响应)。CPU 将此操作码存储在一个称为指令寄存器的寄存器中。此操作码将进一步发送到指令解码器以选择 256 个备选项之一。

4. 16位寄存器

a) 程序计数器 (PC) - 程序是一系列指令。如前所述,微处理器从内存中获取这些指令并执行它们。程序计数器是一个专用寄存器,在任何给定时间,它都存储要获取的下一条指令的地址。程序计数器充当指向下一条指令的指针。处理器如何递增程序计数器取决于指令的性质;对于单字节指令,它将程序计数器递增一,对于双字节指令,它将程序计数器递增二,对于三字节指令,它将程序计数器递增三,以便程序计数器始终指向下一条指令的地址。

对于跳转和调用指令,跳转和调用指令后面的地址将被放入程序计数器。然后,处理器从跳转或调用指令指定的新的地址获取下一条指令。在条件跳转和条件调用指令中,如果条件不满足,处理器将程序计数器递增三,以便它指向条件跳转或调用指令后面的指令;否则,处理器将从跳转或调用指令指定的新的地址获取下一条指令。

b) 堆栈指针 (SP) - 堆栈是RAM内存中一个保留区域,可以临时存储信息。一个16位的堆栈指针用于保存最近堆栈条目的地址。

下图显示了8085微处理器的架构及其寄存器组织:


更新于:2020年6月27日

18K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告