8085 微处理器中结果为零时的返回 (RZ)


在 8085 指令集中,RZ 是助记符,代表“结果为零时返回”。只有当 Z 标志值为 1 时,此指令才用于返回主程序。如果 Z 标志值为 0,则程序流程将按顺序继续执行子程序。这是一个 1 字节指令。

助记符,操作数
操作码(十六进制)
字节
RZ
C8
1


让我们考虑以下示例代码以便更好地解释:

地址
十六进制代码
助记符
注释
2000
31
LXI SP, 5000H
SP ← 5000H。初始化 SP
2001
00


地址的低位字节
2002
50


地址的高位字节
2003
21
LXI H, 4050H
HL ← 4050H,初始化 HL 寄存器对
2004
50


地址的低位字节
2005
40


地址的高位字节
2006
CD
CALL 200BH
调用地址为 200BH 的子程序。因此,程序的控制将转移到 200BH 位置。下一个指令的返回地址 2009H 将被压入堆栈顶部。结果,4FFFH (SP – 1) 将包含 20H,而 4FFEH (SP – 2) 将分别包含 09H。
2007
0B


地址的低位字节
2008
20


地址的高位字节
2009
77
MOV M, A
M ← A,累加器的內容将被转移到 HL 寄存器对指向的内存位置 4050H。因此,在 4050H 内存位置将存储累加器的內容 00H。成功执行 RZ 指令后,控制将返回到此指令。
200A
76
HLT
程序结束。
200B
3E
MVI A, 40H
A ← 40H,用初始值 40H 初始化累加器
200C
40


操作数为 40H
200D
06
MVI B, 40H
B ← 40H,用初始值 30H 初始化寄存器 B
200E
40


操作数为 40H
200F
90
SUB B
A ← A – B = 40H – 40H = 00H,由于计算结果为零,因此 Z = 1
2010
C8
RZ
将控制返回到地址 2009H。返回地址 2009H 将从堆栈顶部弹出。因此,从地址 4FFEH 弹出 09H,从地址 4FFFH 弹出 20H,SP 的内容将相应地恢复其初始地址 5000H。
2011
80
ADD B
A ← A + B ← 00H + 40H = 40H。
(但在本例中,此行无法访问,因此不会执行)
2012
77
MOV M, A
M ← A,累加器的內容将被转移到 HL 寄存器对指向的内存位置 4050H。因此,在 4050H 内存位置将存储累加器的內容 40H。
(但在本例中,此行无法访问,因此不会执行)
2013
C9
RET
将控制返回到地址 2009H。返回地址 2009H 将从堆栈顶部弹出。因此,从地址 4FFEH 弹出 09H,从地址 4FFFH 弹出 20H,SP 的内容将相应地恢复其初始地址 5000H。
(但在本例中,此行无法访问,因此不会执行)


此指令 **RZ** 执行的时序图如下:


**总结** − 因此,此指令 **RZ** 需要 1 字节、3 个机器周期(操作码提取、内存读取、内存读取)和 12 个 T 状态才能执行,如时序图所示。

更新于:2020 年 6 月 27 日

345 次查看

启动您的 职业生涯

完成课程获得认证

开始学习
广告