8085 微处理器中 PUSH rp 指令


在 8085 指令集中,PUSH rp 指令通过将其压入堆栈顶端以上两个位置来存储寄存器对 rp 的内容。rp 代表以下寄存器对之一。

rp = BC, DE, HL, or PSW

由于 rp 可以具有四个值中的任何一个,因此此类指令有四个操作码。它在内存中仅占用 1 个字节。

助记符,操作数 操作码(十六进制) 字节
PUSH B C5 1
PUSH D D5 1
PUSH H E5 1
PUSH PSW F5 1

在上述操作码中,2 位用于表示寄存器对。2 位可以有 4 种组合。因此,可以使用 POP 指令提及 4 个寄存器对。如前所述,它们是 BC、DE、HL 和 AF 或 PSW。

请注意,对于 LXI 指令,我们可以使用 4 个可能的寄存器对,即 BC、DE、HL 和 SP。因此,我们不能同时使用 SP 和 PSW 应用于同一指令。

rp 代码 寄存器对
0 0 BC
0 1 DE
1 0 HL
1 1 SP 或 PSW,但不能同时使用两者。

让我们以 PUSH B 作为此类别的示例指令。它是一个 1 字节指令。

此指令执行的结果如下例所示。

之前 之后

(BC)

AABBH AABBH

(SP)

4000H 3FFEH

(3FFFH)

任何值 AAH

(3FFEH)

任何值 BBH

地址 十六进制代码 助记符 注释
2000 01 LXI B, AABBH 用 AABBH 初始化 BC 寄存器对
2001 BB 低位字节 BBH
2002 AA 高位字节 AAH
2003 31 LXI SP,4000H 用 4000H 初始化 SP
2004 00 低位字节 00H
2005 40 高位字节 40H
2006 C5 PUSH B AAH 将移动到 3FFFH,BBH 将移动到 3FFEH

此指令 PUSH B 执行的时序图如下所示:

PUSH

总结 - 因此,此指令 PUSH B 需要 1 个字节、3 个机器周期(操作码获取、内存写入、内存写入)和 12 个 T 状态才能执行,如时序图所示。

更新于:2019 年 7 月 30 日

11K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告