小编Nat*_*ina的帖子

在armv8架构中将半字值存储到堆栈内存中时出现总线错误?

我有两个寄存器 w1 和 w2,我想将它们存储在堆栈上。我想将完整的单词w1和w2的一半存储到堆栈中。这是我的实现:

STR w1, [sp, #-8]!
STRH w2, [sp, #-8]!
Run Code Online (Sandbox Code Playgroud)

编译时,第一条指令运行良好,但第二条指令引发总线错误。我知道这是一些对齐问题,但我无法正确理解为什么会发生这种情况?

我正在针对 ARMv8(64 位)架构进行编译。

assembly memory-alignment bus-error arm64 stack-pointer

3
推荐指数
1
解决办法
1091
查看次数