8085 微处理器中的内存读取 (MR) 机器周期


“MOV C, M”指令中的最后三个时钟周期是内存读取机器周期的示例。内存读取机器周期的波形如下所示

 

指令
操作
地址寄存器
LDA 1234H
将 W 加载为 12H(或 Z 加载为 34H)
程序计数器 (PC)
POP B
从堆栈顶部弹出信息
堆栈指针 (SP)
MOV C, M
从 HL 指向的内存中加载 A
HL
LDAX B
从 BC 指向的内存中加载 A
BC
LDAX D
从 DE 指向的内存中加载 A
DE
LDA 1234H
从内存位置 1234H 加载 A
WZ

 

在内存读取机器周期期间,接收到的寄存器中的数据取决于指令内的 MR 机器周期,如下所示。其中“r”代表任何寄存器 A、B、C、D、E、H 或 L。

 

指令
操作
数据寄存器
MOV r, M
从 HL 指向的内存中加载 r
R
POP PSW
从堆栈顶部加载标志
标志
MVI M, 25H
从内存中加载 Temp 为 25H
Temp


示例

“MVI M, 25H”指令的执行。假设在位置 C002H,我们有 36H,它是指令“MVI M, ABH”的操作码。这里需要十个时钟周期来完成操作码获取、解码和执行。前四个时钟周期构成操作码获取机器周期,接下来的三个时钟周期将是内存读取机器周期,最后的三个时钟周期将是内存写入机器周期。

除了地址信息外,以下状态信号还在 T1 期间由控制单元激活。

  • ALE = 1,表示地址存在于 AD7-0 上;

  • IO/M* = 0,表示地址仅指定给内存;

  • S1 = 0,S0 = 1,表示它是内存写入机器周期。

以下是指令执行的详细说明 -

在 8085 指令集中,此指令 MVI M, d8 用于将 HL 对指向的内存位置直接加载一个 8 位值。此指令使用立即寻址来指定数据。它在内存中占用 2 个字节。

助记符,操作数 
操作码(十六进制)
字节
MVI M, Data
36
2

 

例如,我们可以考虑 MVI M, ABH 作为此类指令的示例。它是一个 2 字节指令,MVI M 的操作码占用一个字节,ABH 占用另一个字节。我们假设 HL 寄存器对包含 16 位地址 4050H,并且该地址的内容最初为 CDH。因此,在执行指令后,更新的值将为 -

 
之前
之后
(HL)
(4050)
(4050)
(4050)
CDH
ABH

 表格如下所示

地址
十六进制代码
助记符
注释
2006
36
MOV M, ABH
HL 寄存器对指向的内存位置的内容将被 ABH 更新
2007
AB
 
操作数 ABH

 

让我们检查此指令 MVI M, ABH 的时序图

 

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

 

更新于: 2019-07-30

7K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告