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