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