gpt4 book ai didi

assembly - ldr 和 ldr.w 的区别

转载 作者:行者123 更新时间:2023-12-04 17:38:42 27 4
gpt4 key购买 nike

我最近不得不调试一个 MachO 二进制文件,我遇到了以下指令:-
ldr.w r4, [r1, r0, lsl #2]
我明白 ldr r4, [r1, r0, lsl #2]将 r0 向左移动两次,将其添加到 r1 并取消引用结果。

ldr.w 有什么不同?

最佳答案

.W是一个可选的指令宽度说明符。它不会影响指令的行为,它只是确保生成 32 位指令。见 infocenter.arm.com详情:

Thumb-2 中的 LDR(相对于 PC)
您可以使用 .W 宽度说明符强制 LDR 在 Thumb-2 代码中生成 32 位指令。 LDR.W 始终生成 32 位指令,即使使用 16 位 LDR 可以达到目标。
对于前向引用,不带 .W 的 LDR 总是在 Thumb 代码中生成 16 位指令,即使这会导致使用 32 位 Thumb-2 LDR 指令可以达到的目标失败。

关于assembly - ldr 和 ldr.w 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9800526/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com