ARM汇编如何将一个寄存器中的值存储到另一个寄存器中

0 assembly arm arm64

假设寄存器 X12 包含值 5,并且我想将寄存器 X12 中的值移至 X13,我应该如何完成此操作?我已经学习了 LDR/STR/MOV,但我很困惑哪一个是实现这一目标的正确方法。以下是我能想到的方法,但我认为它们是错误的:

   LDR X13,[X12,#0]
   STR X12,[X13]
   MOV X13,X12
Run Code Online (Sandbox Code Playgroud)

Nat*_*dge 6

ARM 使用以下数据传输指令的标准术语:

  • Load:从内存中读取数据并将其写入寄存器。这些指令具有以 开头的助记符LD

  • 存储:从寄存器中读取数据并将其写入内存。这些指令具有以 开头的助记符ST

  • 移动:从一个寄存器读取数据并将其写入另一寄存器。这些指令使用MOV助记符,该助记符也用于将立即值写入寄存器。

因此你想要的是一个动作,MOV X13, X12

(有趣的事实:该指令MOV X13, X12实际上是 的别名ORR X13, XZR, X12。)