CPU 通用寄存器是什么?


通用寄存器是CPU中存在的附加寄存器,根据需要用于存储内存地址或数据。例如,在中断发生时存储当前寄存器内容。

8086 处理器

让我们考虑一个8086处理器。8086微处理器中有八个通用寄存器,解释如下:

AX

这是一个16位的累加器,分为两个8位寄存器AH和AL,以同样执行8位指令。它通常用于算术和逻辑指令,但在8086芯片中,它不需要作为目标操作数。

示例 − ADD AX, AX (AX= AX+AX)

BX

这是一个16位的基址寄存器,分为两个8位寄存器BH和BL,以同样执行8位指令。它存储偏移量值。

示例 − MOV BL, [500] (BL= 500H)

CX

这是一个16位的计数器寄存器,分为两个8位寄存器CH和CL,以同样执行8位指令。它通常用于循环和旋转。

示例

MOV CX,0005

MOV CL,5000

DX

这是一个16位的数据寄存器,分为两个8位寄存器DH和DL,以同样执行8位指令。它通常用于输入/输出端口地址的乘法。

示例 − Mul BX (DX,AX=AX*BX)

SP

这是一个16位的堆栈指针,指向堆栈的顶部元素。

BP

这是一个16位的基址指针,用于访问已传递到堆栈的参数。

SI

这是一个16位的源索引寄存器,用于数据的指针寻址以及字符串相关操作的源。

DI

这是一个16位的目标索引寄存器,用于数据的指针寻址以及字符串相关操作的目标。

如何使用通用寄存器?

CPU的8个通用寄存器能够存储32位二进制数。除了32位数据外,它们还可以存储16位或8位数据。

  • 当存储32位数据时,指令表示为:

    ER0, ER1, ER2, ER3, ER4, ER5, ER6, ER7

  • 当存储16位数据时,指令使用寄存器表示为16个单元:

    E0, E1, E2, E3, E4, E5, E6, E7, R0, R1, R2, R3, R4, R5, R6, R7

  • 当存储8位数据时,指令使用寄存器表示为16个单元:

    R0H, R0L, R1H, R1L, R2H, R2L, R3H, R3L, R4H, R4L, R5H, R5L, R6H, R6L, R7H, R7L

更新于:2021年11月26日

12K+ 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告