最佳答案
所以我想学一点汇编,因为我需要它来上计算机体系结构课。我写了一些程序,比如打印斐波那契数列。
我意识到,每当我编写一个函数时,我都会使用这3行代码(正如我通过比较从 gcc
生成的汇编代码与它的 C
等价物所学到的那样) :
pushq %rbp
movq %rsp, %rbp
subq $16, %rsp
我有两个问题:
%rbp
?使用 %rsp
不是更简单吗,因为它的内容在第2行被移动到 %rbp
?%rsp
中减去任何东西?我的意思是它不总是 16
,当我像 printf
7或8变量,然后我会减去 24
或 28
。我使用 Manjaro 64位的虚拟机(4GB 内存) ,英特尔64位处理器