因此,我正在阅读CS:APP(该书基于x86-64),并且遇到了有关可变大小数组的练习,该数组暗示了可变大小的堆栈。提供了以下代码和程序集输出(格式不允许我复制代码): 以及带有此代码的堆栈框架的结构
即使我已经读过有关数据对齐,不同的算术运算等信息,该程序集也会引起很多问题-这些是:
i
分配16个字节呢?我不明白为什么这就是为什么需要数据对齐的原因leaq 22(,%rdi,8), %rax
-为什么是22?我将第6行的值四舍五入到最接近的16位,但这与22位有什么关系?leaq 7(%rsp), %rax
?