第三章

CSAPP第三版使用的GCC版本:4.8.1

Compiler Explorer

为什么p173要执行subq $8, %rsp?

为了对齐栈指针。x86要求栈指针为16的倍数,而每次调用函数后栈指针模16都会余个8,两次push使栈指针减少16,还是余8.

随笔

结构体字节对齐的结论:对齐要求取决于占据空间最大的元素。可以先安排较大元素,再安排较小元素。

答案纠错

3.43第4问答案有误。应为movq %rdi,(%rsi)