8085 微处理器中的 8085 地址寻址方式


使用助记符,无需更改内容,数据可以在三种不同的情况下传输:

  • 从一个寄存器到另一个寄存器

  • 从内存到寄存器,以及

  • 从寄存器到内存

这些都可以由寻址方式指导。8085 中的寻址方式可以分为 5 组:

  • 立即寻址方式

  • 寄存器寻址方式

  • 直接寻址方式

  • 间接寻址方式

  • 隐含寻址方式

立即寻址方式

在这种模式下,8/16 位数据作为操作数之一在指令本身中指定。例如,MVI E, ABH 表示将 ABH 复制到寄存器 A。

  • MVI E ABH



之前
之后
(A)
任何值
ABH


例如,如果我们考虑指令 **MVI E, ABH**,则表示 ABH 将被移动或复制到寄存器 E。结果,E 的先前值将被覆盖。

地址
十六进制代码
助记符
注释
2000
1E
MVI E, ABH
E ← ABH
2001
AB

ABH 作为操作数


此指令将具有以下所示的七个 T 状态。

**总结** - 所以这条指令 **MVI E, ABH** 需要 2 个字节,2 个机器周期(操作码获取和内存读取)以及 7 个 T 状态才能执行,如定时图所示。

寄存器寻址方式

在这种模式下,数据从一个寄存器复制到另一个寄存器。例如,MOV A, B:表示寄存器 B 中的数据被复制到寄存器 A。

  • MOV E, H

它在内存中只占用 1 个字节。**MOV E, H** 是这种类型的示例指令。它是一个 1 字节指令。假设 E 寄存器内容为 AB H,H 寄存器内容为 9C H。当 8085 执行此指令时,E 寄存器的内容将更改为 9C H。如下所示。


之前
之后
(E)
ABH
9CH
(H)
9CH
9CH


地址
十六进制代码
助记符
注释
2004
5C
MOV E, H
E ← H

请注意,H 寄存器的內容根本没有改变。虽然英特尔将其称为“移动”指令,但在现实中,它似乎是“复制”指令。

MOVE, H 指令的定时图如下:

**总结** - 所以这条指令 **MOV E, H** 需要 1 个字节,1 个机器周期(操作码获取)和 4 个 T 状态才能执行,如定时图所示。


直接寻址方式

在这种模式下,数据直接从给定地址复制到寄存器。例如,LDA 3000H:表示地址 3000H 的数据被复制到寄存器 A。

  • LDA 4050H


让我们考虑 **LDA 4050H** 作为这种类型的示例指令。它是一个 3 字节指令。内存地址 4050H 的初始内容是 ABH。累加器的初始内容是 CDH。执行后,A 将被初始化为 ABH 值。内存位置 4050H 的内容仍然是 ABH。此指令执行的结果如下:

 


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



地址
十六进制代码
助记符
注释
2008
3A
LDA 4050H
A ← 内存位置 4050H 的内容
2009
50


地址的低位字节
200A
40

地址的高位字节



以下是指令 **LDA 4050H** 的定时图:

**总结** - 所以这条指令 **LDA 4050H** 需要 3 个字节,4 个机器周期(操作码获取、内存读取、内存读取、内存读取)以及 13 个 T 状态才能执行,如定时图所示。

间接寻址方式

在这种模式下,数据通过使用寄存器指向的地址从一个寄存器传输到另一个寄存器。例如,MOV A, M:表示数据从寄存器对 HL 指向的内存地址传输到寄存器 A。

  • MOV E, M

它在内存中只占用 1 个字节。**MOV E, M** 是这种类型的示例指令。它是一个 1 字节指令。假设 E 寄存器内容为 DBH,H 寄存器内容为 40H,L 寄存器内容为 50H。假设位置 4050H 的数据值为 AAH。当 8085 执行此指令时,E 寄存器的內容将更改为 AAH,如下所示:


之前
之后
(E)
DBH
AAH
(HL)
4050H
4050H
(4050H)
AAH
AAH



地址
十六进制代码
助记符
注释
2008
2A
MOV E, M
E ← HL 寄存器对指向的内存位置的内容

此 **MOV E, M** 指令的定时图如下:

**总结** - 所以这条指令 **MOV E, M** 需要 1 个字节,2 个机器周期(操作码获取、内存读取)以及 7 个 T 状态才能执行,如定时图所示。

隐含寻址方式

此模式不需要任何操作数;数据由操作码本身指定。例如:CMA、CMP。

  • CMP E


让我们考虑一个属于此类别的示例指令 CMPE。它是一个 1 字节指令,因此在执行此指令期间,它在内存中将只占用一个字节。此指令执行的结果已通过以下示例集进行了描述:

示例 1


之前
之后
(A)
50H
50H
(E)
70H
70H
(临时)
任何值
E0H
(F)
任何值
Cy=1,AC=0,S=1,P=0,Z=0

示例 2


之前
之后
(A)
70H
70H
(E)
50H
50H
(临时)
任何值
20H
(F)
任何值
Cy=0,AC=0,S=0,P=0,Z=0

示例 3


之前
之后
(A)
50H
50H
(E)
50H
50H
(临时)
任何值
00H
(F)
任何值
Cy=0,AC=0,S=0,P=1,Z=1


地址
十六进制代码
助记符
注释
2004
BB
CMP E
Temp = 寄存器 A - 寄存器 E


此指令 **CMP** 执行的定时图如下:

**总结** - 所以这条指令 **CMP E** 需要 1 个字节,1 个机器周期(操作码获取)以及 4 个 T 状态才能执行,如定时图所示。

更新于:2020 年 6 月 27 日

5K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告