📜  AVR微控制器中的数据传输指令

📅  最后修改于: 2021-06-28 17:01:06             🧑  作者: Mango

数据传输指令是用于将数据传输到微控制器的指令。

这些说明可用于从以下位置传输数据:

  • 注册到注册:
    在寄存器到寄存器的传输中,数据从一个寄存器传输到另一个寄存器。考虑一个必须执行二进制加法的示例。
    例子 –
    在此示例中,第一个数据将传输到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指令严格维护堆栈。