汇编器中的“ -4”是什么:movl $ 1,-4%rbp

问题描述

int x=1;
int y=2;
int z=3;

变成

movl    $1,-4(%rbp)
movl    $2,-8(%rbp)
movl    $3,-12(%rbp)

-4,-8,-12代表什么? 为什么要加4? 4个字节= 32位?

解决方法

相对于rbp中保存的地址,即pointer to the top of the stack(向下增长)的

-4 / -8 / -12字节。 4字节/ 32位,因为这是您计算机上int的大小。