有没有办法将 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
我正在使用 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