小编jkg*_*jkg的帖子

在 ARM Arch64 寄存器中移动 32 位常量

我正在寻找一种方法来移动 arch64 寄存器 X1 中的任何 32 位常量。

有没有办法执行等效操作

MOV X1,#imm32

imm32 可以是任何随机 32 位值,例如 0xaf41d32c

我知道如何在 A32 中使用 MOVW 和 MOVT 来完成。我不想使用 LDR X1, =0xaf41d32c,因为我不是直接编写汇编代码,而是通过在内存中写入 32 位 ARM 编码来将指令存储在缓存中。所以我基本上无法形成LDR X1,=0xaf41d32c的编码。

例如 => 根据 ARMv7 参考手册,指令 ADD R1, R1, #1 的编码为 0xe2811001。所以我将其存储在缓存中的某个位置,然后从该位置开始执行。

MOVW 和 MOVT 的 A64 等效项是否存在?你能建议一个解决方案吗?

assembly arm arm64

4
推荐指数
1
解决办法
3650
查看次数

ARM Arch64中的PUSH {lr}和POP {lr}

什么是等效的指令PUSH{lr},并POP{lr}在ARM Arch64指令集.

是对的STR X30, [SP, #8]吗?你能解释一下保持堆栈对齐的概念吗?我对ARMv8比较陌生,请原谅.

assembly arm arm64

2
推荐指数
2
解决办法
3645
查看次数

标签 统计

arm ×2

arm64 ×2

assembly ×2