x64 内存指针和寻址模式
逆向工程
拆卸
调试
风袋
2021-07-07 12:51:20
1个回答
对齐数据的主要原因是为了性能(某些架构会在未对齐的数据上出错,但由于您使用 windbg 标记了它,我们将假设 amd/intel x64 + windows)。
引用 AMD64 架构程序员手册第 1 卷:
AMD64 架构对访问内存中的数据没有强加数据对齐要求。然而,根据未对齐操作数相对于数据总线宽度的位置以及硬件实现的其他方面(例如存储到加载转发机制),未对齐的内存访问可能需要比对齐的更多的总线周期使用权。为了获得最佳性能,请避免未对齐的内存访问。
理想情况下,字大小的数据(通过 rbx 指向)将是 2 字节对齐的,但如上所述,这不是必需的。
其它你可能感兴趣的问题
