数据传输指令是用于将数据传输到微控制器的指令。
这些说明可用于从以下位置传输数据:
- 注册到注册:
在寄存器到寄存器的传输中,数据从一个寄存器传输到另一个寄存器。考虑一个必须执行二进制加法的示例。
例子 –
在此示例中,第一个数据将传输到B寄存器,然后它将从B寄存器传输到累加器寄存器。MVI B, 05 MOV A, B
- 注册到内存:
在此数据传输中,数据将从寄存器传输到给定的存储器位置。考虑给定位置为201k的示例,您必须从累加器复制数据。
例子 –STA 201K
- 要注册的内存:
在此数据传输中,数据将从存储器传输到寄存器。考虑给定位置为201k的示例,您必须将数据从该存储位置加载到累加器。
例子 –LDA 2020k
- 要注册的常量:
在此数据传输中,数据将被传输到立即给定的寄存器中。考虑给定数据为05的示例,您必须将数据加载到累加器。
例子 –MVI A, 05
下表显示了不同的转移说明:
Instruction | Operand | Explanation | Example |
---|---|---|---|
MOV | D, S | D = S | MOV D, S |
LDS | D, K(memory location) | D = Value at K | LDS D, K |
LD | D, S | D = Value at memory location stored in S | LD D, S |
LDI | D, K(constant) | D = K | LDI D, K |
LPM | D, Z(flash memory) | Store the value in register Z from flash memory into the memory location stored in the D register | LPM D, Z |
IN | D, A | Stores the value in register A in D. where A is from [0, 63](64 I/O Registers) |
IN D, A |
OUT | A, D | Stores the value in register D in A. where A is from [0, 63](64 I/O Registers) |
OUT A, D |
STS | K, S | Stores the value in register S into memory location K. | STS K, S |
ST | D, S | Store the value in register S into the memory location stored in the D register | ST D, S |
PUSH | D | Pushes the content of D on the top of the stack | PUSH D |
POP | D | Removes the topmost entry from the stack and transfers that value to D |
POP D |
D和S是寄存器。 PUSH和POP指令严格维护堆栈。