8085 微处理器中 DAD rp 指令类型


尽管 8085 是一个 8 位微处理器,但 8085 指令集中有一些指令也可以进行 16 位加法运算。由于 8085 的内部架构仅为 8 位,因此此指令所需的时间是添加两个 8 位数字所需时间的两倍。

这里,DAD 是助记符,代表Double ADd(双加),rp 代表以下提到的任意一个寄存器对。

rp = BC, DE, or HL

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

助记符,操作数 操作码(十六进制) 字节
DAD B 09 1
DAD D 19 1
DAD H 29 1

在此指令中,HL 寄存器对充当累加器。因为 rp 的 16 位内容将与 HL 寄存器对的内容相加,并且产生的和将再次存储回 HL。

尽管它是一个算术指令,但根据设计,除了 Cy 之外的标志不会受此指令DAD rp执行的影响。

让我们考虑DAD B作为此类别的示例指令。由于它是 1 字节指令,因此它在内存中占用单个字节的位置。我们认为 HL 和 BC 寄存器对的初始内容为 4050H 和 4060H。因此,在 16 位加法之后,HL 寄存器对的当前内容将为 80B0H。此指令执行的结果如下所示,并附有跟踪表。

之前 之后

(HL)

4050H 80B0H

(BC)

4060H 4060H

(F)

任何值 Cy=0,其他标志位不变

地址 十六进制代码 助记符 注释
2006 09 DAD B HL = HL + BC

针对此指令DAD B执行的时序图如下所示。

DAD B

总结 - 因此,此指令DAD B需要 1 个字节、3 个机器周期(操作码获取、总线空闲、总线空闲)和 10 个 T 状态才能执行,如时序图所示。此指令需要 10 个 T 状态,包括操作码获取。操作码获取周期需要 4 个 T 状态,其余 6 个 T 状态分为两个机器周期,用于指令执行。在这 6 个 T(两个机器周期)状态期间,不执行总线操作。因此,它们被称为总线空闲机器周期。在此期间,ALE、RD 等不会被激活。

更新于:2019 年 7 月 30 日

16K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告