Intel 8051 内部数据存储器组织


8051 的内部数据存储器分为两部分:一组八个寄存器和一个暂存器存储区。这八个寄存器为 R0 到 R7。地址范围 00H 到 07H 用于访问这些寄存器,其余部分为暂存器存储区。

8051 提供四个寄存器组,但任何时候只能使用一个寄存器组。程序状态字 (PSW) 的两位用于选择寄存器组。

因此,可以使用以下寻址方式来选择寄存器组。

地址范围寄存器组
00H 到 07H寄存器组 0
08H 到 0FH寄存器组 1
10H 到 17H寄存器组 2
18H 到 1FH寄存器组 3

四个寄存器组的概念非常有用。对于中断服务,此功能非常出色。中断程序可以使用一个寄存器组,而中断服务子程序 (ISS) 可以访问另一个寄存器组以提高性能。由于有四个寄存器组,因此可以用于嵌套中断。

当所有寄存器组都正在使用时,暂存器区域将为 20H 到 7FH。但是,从 20H 到 2FH (16 字节或 128 位) 可以用作按位寻址的 RAM。通过使用一些带有 8 位内存地址的简单指令,我们可以检查位寻址。例如,指令 **CLR 6FH** 清除位置 6FH。众所周知,8 位地址可以定位 256 个不同的位置,但此处仅可寻址 128 位。另一个按位寻址位置部分为 80H 到 FFH。RAM 的其余位置 (30H 到 7EH) 可用于存储变量数据和堆栈。

堆栈区域

8051 中的堆栈区域始终可以在内部数据存储器中实现。这里的堆栈指针 (SP) 只是一个 8 位寄存器,因为内部 RAM 区域仅在 00H 到 7FH 范围内,当所有寄存器组都正在使用时,堆栈位置将位于 30H 到 7FH 范围内。在这种情况下,SP 将初始化为 2FH。

每次 PUSH 操作之前,堆栈指针 SP 都递增;每次 POP 指令之后都递减。

当 8051 复位时,堆栈指针将指向 07H。这意味着位置 08H 到 7FH 可以用作堆栈。我们假设寄存器组 0 正在使用,并且 20H 到 27H 不像位寻址区域。

更新于:2023年9月14日

34K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.