8085 数据传输指令

下表列出了数据传输指令及其含义。

操作码 操作数 含义 解释
MOV

Rd,Sc

M,Sc

Dt,M

从源 (Sc) 复制到目标 (Dt)

此指令将源寄存器的内容不做任何更改地复制到目标寄存器中。

示例 − MOV K, L

MVI

Rd,数据

M,数据

移动立即数 8 位

8 位数据存储在目标寄存器或内存中。

示例 − MVI K,55L

LDA

16 位地址

加载累加器

由操作数中的 16 位地址指定的内存位置的内容被复制到累加器。

示例 − LDA 2034K

LDAX

B/D 寄存器对

间接加载累加器

指定寄存器对的内容指向一个内存位置。此指令将该内存位置的内容复制到累加器中。

示例 − LDAX K

LXI

寄存器对,16 位数据

加载寄存器对立即数

该指令将 16 位数据加载到寄存器或内存中指定的寄存器对中。

示例 − LXI K, 3225L

LHLD

16 位地址

直接加载 H 和 L 寄存器

该指令将地址指向的内存位置的内容复制到寄存器 L 中,并将下一个内存位置的内容复制到寄存器 H 中。

示例 − LHLD 3225K

STA

16 位地址

16 位地址

将累加器的内容复制到操作数指定的内存位置。

这是一条 3 字节指令,第二个字节指定低位地址,第三个字节指定高位地址。

示例 − STA 325K

STAX

16 位地址

间接存储累加器

累加器的内容被复制到操作数内容指定的内存位置。

示例 − STAX K

SHLD

16 位地址

直接存储 H 和 L 寄存器

寄存器 L 的内容存储在操作数的 16 位地址指定的内存位置中,而 H 寄存器的内容通过增加操作数存储在下一个内存位置中。

这是一个 3 字节指令,第二个字节指定低位地址,第三个字节指定高位地址。

示例 − SHLD 3225K

XCHG

将 H 和 L 与 D 和 E 交换

将寄存器 H 的内容与寄存器 D 的内容交换,将寄存器 L 的内容与寄存器 E 的内容交换。

示例 − XCHG

SPHL

将 H 和 L 寄存器复制到堆栈指针

该指令将 H 和 L 寄存器的内容加载到堆栈指针寄存器中。H 寄存器的内容提供高位地址,L 寄存器的内容提供低位地址。

示例 − SPHL

XTHL

将 H 和 L 与堆栈顶部交换

将 L 寄存器的内容与堆栈指针寄存器的内容指向的堆栈位置交换。

将 H 寄存器的内容与下一个堆栈位置 (SP+1) 交换。

示例 − XTHL

推送

Reg. pair

将寄存器对推送到堆栈上

操作数中指定的寄存器对的内容按以下顺序复制到堆栈上。

堆栈指针寄存器递减,高位寄存器(B、D、H、A)的内容复制到该位置。

堆栈指针寄存器再次递减,低位寄存器(C、E、L、标志)的内容复制到该位置。

示例 −推 K

POP

Reg. pair

弹出堆栈到寄存器对

堆栈指针寄存器指向的内存位置的内容被复制到操作数的低位寄存器(C、E、L、状态标志)。

堆栈指针加 1,该内存位置的内容被复制到操作数的高位寄存器(B、D、H、A)。

堆栈指针寄存器再次加 1。

示例 − POPK

OUT

8位端口地址

将数据从累加器输出到具有8位地址的端口

将累加器的内容复制到操作数指定的I/O端口中。

示例 − OUT K9L

IN

8 位端口地址

从 8 位地址的端口将数据输入到累加器

读取操作数中指定的输入端口的内容并将其加载到累加器中。

示例 − IN5KL

microprocessor_8085_instruction_sets.html