有没有办法将 32 位寄存器复制到 arm64 中的 64 位寄存器?

Is there a way to copy a 32-bit register into a 64-bit register in arm64?

我正在使用 arm64,我正在尝试找到一种方法将 32 位寄存器复制到 64 位寄存器,因为 mov x1, w6 returns 操作数不匹配错误,因为你不能'只需一条简单的移动指令即可将 32 位寄存器复制到 64 位寄存器。

32位通用寄存器实际上就是64位通用寄存器,高4字节置零。正如评论者所指出的,您只需要决定是否要进行符号扩展。

因此,如果您想要 uint64_t x1 = (uint32_t)w6,您可以:

mov w1, w6

如果你想要 int64_t x1 = (int32_t)w6,你可以:

sxtw x1, w6