我有两个寄存器 w1 和 w2,我想将它们存储在堆栈上。我想将完整的单词w1和w2的一半存储到堆栈中。这是我的实现:
STR w1, [sp, #-8]! STRH w2, [sp, #-8]!
编译时,第一条指令运行良好,但第二条指令引发总线错误。我知道这是一些对齐问题,但我无法正确理解为什么会发生这种情况?
我正在针对 ARMv8(64 位)架构进行编译。
assembly memory-alignment bus-error arm64 stack-pointer
arm64 ×1
assembly ×1
bus-error ×1
memory-alignment ×1
stack-pointer ×1