8085微处理器指令类型SHLD a16


在8085指令集中,SHLD是一个助记符,代表使用直接寻址将HL寄存器对存储到内存位置,其16位地址表示为a16。由于需要存储HL寄存器对,因此必须将其存储到从地址a16开始的两个连续位置。我们知道H和L是8位寄存器。因此,它们的内容将存储在两个连续的内存位置中,因为每个内存位置可以保存8位数据。此指令使用绝对寻址模式来指定目标地址。它在内存中占用3个字节。

助记符,操作数 操作码(十六进制) 字节数
SHLD 地址 22 3

让我们考虑SHLD 4050H作为此类型的一个示例指令。它是一个3字节指令,因此占用3个连续的内存位置。让我们假设H和L寄存器最初的内容分别为BBH和AAH。4050H和4051H内存位置分别保存数据CCH和DDH。因此,执行指令SHLD 4050H后,4050H和4051H内存位置的内容将分别为AAH和BBH。以下是用于更好地理解的跟踪表。

之前 之后
(H) BBH BBH
(L) AAH AAH
(4050H) CCH AAH
(4051H) DDH BBH

地址 十六进制代码 助记符 注释
200B 22 SHLD 4050H 将HL寄存器对的内容分别存储到内存位置4050H和4051H。
200C 50 地址的低位字节
200D 40 地址的高位字节

请注意,8085中没有像SBCD a16和SDED a16这样的指令。由于HL寄存器对是最重要的寄存器对,其内容可以通过多种方式存储到内存中,比其他任何寄存器对都要多。

让我们考虑指令SHLD 4050H执行的时序图。

SHLD

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

更新于:2019年7月30日

浏览量9K+

启动你的职业生涯

完成课程获得认证

开始学习
广告