8085 微处理器中的进位调用 (CC)


在 8085 指令集中,**CC** 是一个助记符,代表“进位调用”。仅当 Cy 标志值为 1 时,此指令才用于分支到指令中提供的 16 位地址的子程序。如果 Cy 标志值为 0,则程序流程将在主程序中依次继续。它是一个 3 字节指令。

助记符,操作数
操作码(十六进制)
字节
CC 标签
DC
3


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

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


地址的低位字节
2002
50


地址的高位字节
2003
3E
MVI A, 40H
A ← 40H,使用初始值 40H 初始化累加器
2004
40


40H 作为操作数
2005
06
MVI B, 50H
B ← 50H,使用初始值 50H 初始化寄存器 B
2006
50


50H 作为操作数
2007
90
SUB B
A ← A – B= 40H – 50H = -10H = F0H,由于计算结果中产生了进位,所以 Cy = 1
2008
DC
CC 2010H
由于 Cy = 1,因此调用地址为 2010H 的子程序。因此,程序的控制权将转移到位置 2010H。并且返回地址 200BH(即下一条指令的地址)将被压入堆栈顶部。结果,4FFFH(SP – 1)将包含 20H,而 4FFEH(SP – 2)将分别包含 0BH。
2009
10


地址的低位字节
200A
20


地址的高位字节
200B
21
LXI H, 4050H
HL ← 4050H,初始化 HL 寄存器对。执行 RET 指令后,控制权将返回到此指令。
200C
50


地址的低位字节
200D
40


地址的高位字节
200E
77
MOV M, A
M ← A,累加器的内容将被传输到内存位置 4050H,因为它由 HL 寄存器对指向。因此,在 4050H 内存位置将存储累加器的内容 40H。
200F
76
HLT
程序结束。
2010
80
ADD B
A <- A + B =F0H + 50H = 40H
2011
C9
RET
将控制权返回到地址 200BH。返回地址 200BH 将从堆栈顶部弹出。因此,从地址 4FFEH 弹出 0BH,从地址 4FFFH 弹出 20H,并且 SP 将根据其内容相应地恢复初始地址 5000H。


针对此指令 **CC 2010H** 执行的时序图如下 -

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

更新于: 2020-06-27

661 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告